File.Encrypt(String) Methode

Definition

Verschlüsselt eine Datei, sodass sie nur mit dem Konto, mit dem die Datei verschlüsselt wurde, entschlüsselt werden kann.

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)

Parameter

path
String

Ein Pfad, der eine zu verschlüsselnde Datei beschreibt.

Attribute

Ausnahmen

.NET Framework und .NET Core-Versionen vor 2.1: Der -Parameter ist eine Zeichenfolge der Länge 0 (null), enthält nur Leerzeichen oder enthält mindestens ein path ungültiges Zeichen. Sie können Abfragen für ungültige Zeichen mithilfe der GetInvalidPathChars()-Methode ausführen.

Der path-Parameter ist null.

Es wurde ein ungültiges Laufwerk angegeben.

Die durch den path-Parameter beschriebene Datei konnte nicht gefunden werden.

Beim Öffnen der Datei ist ein E/A-Fehler aufgetreten.

  • oder -

Dieser Vorgang wird von der aktuellen Plattform nicht unterstützt.

Der angegebene Pfad und/oder Dateiname überschreiten die vom System definierte maximale Länge.

Das aktuelle Betriebssystem ist nicht Windows NT oder höher.

Das Dateisystem ist nicht NTFS.

Der path-Parameter hat eine schreibgeschützte Datei angegeben.

  • oder - Dieser Vorgang wird von der aktuellen Plattform nicht unterstützt.

  • oder - Der path-Parameter hat ein Verzeichnis angegeben.

  • oder - Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

Beispiele

Im folgenden Codebeispiel werden die Encrypt -Methode und die Decrypt -Methode verwendet, um eine Datei zu verschlüsseln und dann zu entschlüsseln. Die Datei muss vorhanden sein, damit das Beispiel funktioniert.

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);
        }
    }
}
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

Hinweise

Mit der -Methode können Sie eine Datei verschlüsseln, sodass sie nur von dem Konto entschlüsselt werden kann, das zum Encrypt Aufrufen dieser Methode verwendet wurde. Verwenden Sie die Decrypt -Methode, um eine datei zu entschlüsseln, die mit der -Methode Encrypt verschlüsselt wurde.

Wichtig

Diese API wird nur auf Windows Plattformen unterstützt, die die NTFS-verschlüsselndes Dateisystem (EFS) verwenden können. Jeder Versuch, dies auf Nicht-Windows-Systemen, Windows Home Edition-Systemen oder Nicht-NTFS-Laufwerken zu verwenden, führt je nach Situation zu einem oder PlatformNotSupportedException NotSupportedException .

Die Verwendung dieser API in .NET Core wird nicht empfohlen. es ist enthalten, um Portabilität für Anwendungen zu ermöglichen, die zu .NET Core wechseln, aber dennoch explizit auf Windows.

Die -Methode erfordert exklusiven Zugriff auf die zu verschlüsselnde Datei und kann nicht verwendet Encrypt werden, wenn die Datei von einem anderen Prozess verwendet wird.

Sowohl die -Methode als auch die -Methode verwenden den auf dem Computer installierten Kryptografiedienstanbieter (Cryptographic Service Provider, CSP) und die Dateiverschlüsselungsschlüssel des Prozesses, Encrypt Decrypt der die -Methode aufruft.

Diese Methode ist nicht in allen Versionen von Windows. Beispielsweise ist sie in home-Editionen nicht verfügbar.

Das aktuelle Dateisystem muss als NTFS formatiert sein.

Gilt für