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 パラメーターでディレクトリが指定されました。

-又は-

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

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

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メソッドは、現在のユーザー アカウントを使用して暗号化されたファイルのみを復号化できます。

Important

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

.NET Core でのこの API の使用はお勧めしません。.NET Core に移行しても、Windowsを明示的にターゲットとするアプリケーションの移植性を有効にするために含まれています。

Decrypt メソッドでは、復号化するファイルへの排他的アクセスが必要であり、別のプロセスでファイルを使用している場合は例外が発生します。

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

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

適用対象