次の方法で共有


File.Encrypt(String) メソッド

定義

ファイルを暗号化し、そのファイルの暗号化に使用したアカウントだけが暗号化の解除をできるようにします。

public:
 static void Encrypt(System::String ^ path);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static void Encrypt (string path);
public static void Encrypt (string path);
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member Encrypt : string -> unit
static member Encrypt : string -> unit
Public Shared Sub Encrypt (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 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

注釈

Encryptメソッドを使用すると、ファイルを暗号化して、このメソッドの呼び出しに使用されたアカウントのみが暗号化を解除できるようにします。 メソッドで Decrypt 暗号化されたファイルの暗号化を解除するには、 メソッドを Encrypt 使用します。

重要

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

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

メソッドは Encrypt 、暗号化されているファイルへの排他的アクセスを必要とし、別のプロセスがファイルを使用している場合は失敗します。

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

このメソッドは、Windows のすべてのバージョンで使用できるわけではありません。 たとえば、Home エディションでは使用できません。

現在のファイル システムは NTFS 形式である必要があります。

適用対象