File.Encrypt(String) メソッド


ファイルを暗号化し、そのファイルの暗号化に使用したアカウントだけが暗号化の解除をできるようにします。Encrypts a file so that only the account used to encrypt the file can decrypt it.

 static void Encrypt(System::String ^ path);
public static void Encrypt (string path);
static member Encrypt : string -> unit
Public Shared Sub Encrypt (path As String)



暗号化するファイルを示すパス。A path that describes a file to encrypt.


path パラメーターは長さゼロの文字列で、空白のみで構成されているか、または InvalidPathChars で定義されるように 1 つ以上の無効な文字を含んでいます。The path parameter is a zero-length string, contains only white space, or contains one or more invalid characters as defined by InvalidPathChars.

path パラメーターが null です。The path parameter is null.

正しくないドライブが指定されました。An invalid drive was specified.

path パラメーターで記述されているファイルが見つかりませんでした。The file described by the path parameter could not be found.

ファイルを開くときに、I/O エラーが発生しました。An I/O error occurred while opening the file.

- または --or-

この操作は、現在のプラットフォームではサポートされていません。This operation is not supported on the current platform.

指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。The specified path, file name, or both exceed the system-defined maximum length.

現在のオペレーティング システムは Windows NT 以降ではありません。The current operating system is not Windows NT or later.

このファイル システムは NTFS ではありません。The file system is not NTFS.

path パラメーターに読み取り専用のファイルが指定されています。The path parameter specified a file that is read-only.

- または --or- この操作は、現在のプラットフォームではサポートされていません。This operation is not supported on the current platform.

- または --or- path パラメーターにディレクトリが指定されています。The path parameter specified a directory.

- または --or- 呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

次のコード例では、メソッドとメソッドを使用して、 Encrypt Decrypt ファイルの暗号化と復号化を行います。The following code example uses the Encrypt method and the Decrypt method to encrypt and then decrypt a file. この例を使用するには、ファイルが存在している必要があります。The file must exist for the example to work.

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;
        Console::WriteLine("Encrypt " + fileName);

        // Encrypt the file.

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

        // Decrypt the file.

    catch (IOException^ ex)
        Console::WriteLine("There was an IO problem.");
    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()
                string FileName = "test.xml";

                Console.WriteLine("Encrypt " + FileName);

                // Encrypt the file.

                Console.WriteLine("Decrypt " + FileName);

                // Decrypt the file.

            catch (Exception e)


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


        // Decrypt a file.
        public static void RemoveEncryption(string FileName)
Imports System.IO
Imports System.Security.AccessControl

Module FileExample

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

            Console.WriteLine("Encrypt " + FileName)

            ' Encrypt the file.

            Console.WriteLine("Decrypt " + FileName)

            ' Decrypt the file.

        Catch e As Exception
        End Try


    End Sub

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


    End Sub

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


    End Sub
End Module


メソッドを使用する Encrypt と、ファイルを暗号化して、このメソッドの呼び出しに使用されるアカウントだけが復号化できるようにすることができます。The Encrypt method allows you to encrypt a file so that only the account used to call this method can decrypt it. メソッドを使用し Decrypt て、メソッドによって暗号化されたファイルを復号化し Encrypt ます。Use the Decrypt method to decrypt a file encrypted by the Encrypt method.


この API は、NTFS 暗号化ファイルシステム (EFS) を使用できる Windows プラットフォームでのみサポートされています。This API is only supported on Windows platforms that are able to use the NTFS Encrypting File System (EFS). Windows 以外のシステム、Windows Home Edition システム、または NTFS 以外のドライブでこれを使用しようとすると、 PlatformNotSupportedException NotSupportedException 状況に応じてまたはが発生します。Any attempt to use this on non-Windows systems, Windows Home Edition systems, or non-NTFS drives results in a PlatformNotSupportedException or NotSupportedException, depending on the situation.

.NET Core では、この API の使用は推奨されません。 .NET Core に移動するが、まだ明示的に Windows を対象のアプリケーションの移植性を有効にすることが含まれます。Use of this API in .NET Core is not recommended; it is included to enable portability for applications that move to .NET Core but still explicitly target Windows.

メソッドは、 Encrypt 暗号化されているファイルへの排他アクセスを必要とし、別のプロセスがそのファイルを使用していると失敗します。The Encrypt method requires exclusive access to the file being encrypted, and will fail if another process is using the file.

メソッドとメソッドはどちらも、 Encrypt Decrypt コンピューターにインストールされている暗号化サービスプロバイダー (CSP) と、メソッドを呼び出すプロセスのファイル暗号化キーを使用します。Both the Encrypt method and the Decrypt method use the cryptographic service provider (CSP) installed on the computer and the file encryption keys of the process calling the method.

このメソッドは、Windows のすべてのバージョンで使用できるわけではありません。This method is not available on all versions of Windows. たとえば、Home edition では使用できません。For example, it is not available on Home editions.

現在のファイルシステムは NTFS としてフォーマットされている必要があります。The current file system must be formatted as NTFS.