File.Decrypt(String) メソッド

定義

Encrypt(String) メソッドを使用して現在のアカウントによって暗号化されたファイルを復号化します。

public:
 static void Decrypt(System::String ^ path);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static void Decrypt (string path);
public static void Decrypt (string path);
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member Decrypt : string -> unit
static member Decrypt : string -> unit
Public Shared Sub Decrypt (path As String)

パラメーター

path
String

復号化するファイルを示すパス。

属性

例外

.NET Frameworkおよび .NET Core バージョンが 2.1 より前の場合: パラメーターはpath長さ 0 の文字列、空白のみを含む、または 1 つ以上の無効な文字を含みます。 正しくない文字を照会するには、GetInvalidPathChars() メソッドを使用します。

path パラメーターが null です。

正しくないドライブが指定されました。

path パラメーターで記述されているファイルが見つかりませんでした。

ファイルを開くときに、I/O エラーが発生しました。 たとえば、暗号化されたファイルが既に開いています。

- または -

この操作は、現在のプラットフォームではサポートされていません。

指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。

現在のオペレーティング システムは Windows NT 以降ではありません。

このファイル システムは NTFS ではありません。

path パラメーターに読み取り専用のファイルが指定されています。

- または -

この操作は、現在のプラットフォームではサポートされていません。

- または -

path パラメーターにディレクトリが指定されています。

- または -

呼び出し元に、必要なアクセス許可がありません。

次のコード例では、 メソッドと メソッドをEncryptDecrypt使用して、ファイルの暗号化と暗号化解除を行います。 この例を機能させるには、ファイルが存在している必要があります。

using namespace System;
using namespace System::IO;

int main()
{
    String^ fileName = "test.xml";
    if (!File::Exists(fileName))
    {
        Console::WriteLine("The file " + fileName
            + " does not exist.");
        return 0;
    }
    try
    {
        Console::WriteLine("Encrypt " + fileName);

        // Encrypt the file.
        File::Encrypt(fileName);

        Console::WriteLine("Decrypt " + fileName);

        // Decrypt the file.
        File::Decrypt(fileName);

        Console::WriteLine("Done");
    }
    catch (IOException^ ex)
    {
        Console::WriteLine("There was an IO problem.");
        Console::WriteLine(ex->Message);
    }
    catch (PlatformNotSupportedException^)
    {
        Console::WriteLine("Encryption is not supported on " +
            "this system.");
    }
    catch (NotSupportedException^)
    {
        Console::WriteLine("Encryption is not supported on " +
            "this system.");
    }
    catch (UnauthorizedAccessException^)
    {
        Console::WriteLine("The operation could not be "
            + "carried out.");
    }
}
using System;
using System.IO;
using System.Security.AccessControl;

namespace FileSystemExample
{
    class FileExample
    {
        public static void Main()
        {
            try
            {
                string FileName = "test.xml";

                Console.WriteLine("Encrypt " + FileName);

                // Encrypt the file.
                AddEncryption(FileName);

                Console.WriteLine("Decrypt " + FileName);

                // Decrypt the file.
                RemoveEncryption(FileName);

                Console.WriteLine("Done");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            Console.ReadLine();
        }

        // Encrypt a file.
        public static void AddEncryption(string FileName)
        {

            File.Encrypt(FileName);
        }

        // Decrypt a file.
        public static void RemoveEncryption(string FileName)
        {
            File.Decrypt(FileName);
        }
    }
}
open System.IO

// Encrypt a file.
let addEncryption fileName = File.Encrypt fileName

// Decrypt a file.
let removeEncryption fileName = File.Decrypt fileName

let fileName = "test.xml"

printfn $"Encrypt {fileName}"

// Encrypt the file.
addEncryption fileName

printfn $"Decrypt {fileName}"

// Decrypt the file.
removeEncryption fileName

printfn "Done"
Imports System.IO
Imports System.Security.AccessControl



Module FileExample

    Sub Main()
        Try
            Dim FileName As String = "test.xml"

            Console.WriteLine("Encrypt " + FileName)

            ' Encrypt the file.
            AddEncryption(FileName)

            Console.WriteLine("Decrypt " + FileName)

            ' Decrypt the file.
            RemoveEncryption(FileName)

            Console.WriteLine("Done")
        Catch e As Exception
            Console.WriteLine(e)
        End Try

        Console.ReadLine()

    End Sub


    ' Encrypt a file.
    Sub AddEncryption(ByVal FileName As String)

        File.Encrypt(FileName)

    End Sub


    ' Decrypt the file.
    Sub RemoveEncryption(ByVal FileName As String)

        File.Decrypt(FileName)

    End Sub
End Module

注釈

Decryptメソッドを使用すると、 メソッドを使用して暗号化されたファイルをEncrypt復号化できます。 メソッドは、現在の Decrypt ユーザー アカウントを使用して暗号化されたファイルのみを復号化できます。

重要

この API は、NTFS 暗号化ファイル システム (EFS) を使用できる Windows プラットフォームでのみサポートされています。 これを Windows 以外のシステム、Windows Home Edition システム、または NTFS 以外のドライブで PlatformNotSupportedException 使用しようとすると、状況に応じて または NotSupportedExceptionが発生します。

.NET Core では、この API の使用は推奨されません。 .NET Core に移動するが、まだ明示的に Windows を対象のアプリケーションの移植性を有効にすることが含まれます。

メソッドでは Decrypt 、暗号化を解除するファイルへの排他的アクセスが必要であり、別のプロセスでファイルを使用している場合は例外が発生します。 ファイルが暗号化されていない場合、 Decrypt は 0 以外の値を返します。これは成功を示します。

メソッドと メソッドのEncryptDecrypt両方で、コンピューターにインストールされている暗号化サービス プロバイダー (CSP) と、 メソッドを呼び出すプロセスのファイル暗号化キーを使用します。

現在のファイル システムは NTFS 形式で、現在のオペレーティング システムはWindows NT以降である必要があります。

適用対象