File.Encrypt(String) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.