File.Encrypt(String) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Szyfruje plik, aby tylko konto używane do szyfrowania pliku może go odszyfrować.
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)
Parametry
- path
- String
Ścieżka opisując plik do zaszyfrowania.
- Atrybuty
Wyjątki
.NET Framework i .NET Core w wersjach starszych niż 2.1: path
Parametr jest ciągiem o zerowej długości, zawiera tylko białe znaki lub zawiera co najmniej jeden nieprawidłowy znak. Możesz wykonać zapytanie o nieprawidłowe znaki przy użyciu GetInvalidPathChars() metody .
Parametr path
to null
.
Określono nieprawidłowy dysk.
Nie można odnaleźć pliku opisanego path
przez parametr .
Podczas otwierania pliku wystąpił błąd We/Wy.
-lub-
Ta operacja nie jest obsługiwana na bieżącej platformie.
Podana ścieżka, nazwa pliku lub obie przekraczają maksymalną długość zdefiniowaną przez system.
Bieżący system operacyjny nie jest windows NT lub nowszy.
System plików nie jest ntfs.
Parametr path
określił plik, który jest tylko do odczytu.
-lub-
Ta operacja nie jest obsługiwana na bieżącej platformie.
-lub-
Parametr path
określił katalog.
-lub-
Obiekt wywołujący nie posiada wymaganych uprawnień.
Przykłady
Poniższy przykład kodu używa Encrypt metody i Decrypt metody do szyfrowania, a następnie odszyfrowywania pliku. Plik musi istnieć, aby przykład działał.
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
Uwagi
Metoda Encrypt umożliwia szyfrowanie pliku tak, aby tylko konto użyte do wywołania tej metody może go odszyfrować. Decrypt Użyj metody , aby odszyfrować plik zaszyfrowany przez metodę Encrypt .
Ważne
Ten interfejs API jest obsługiwany tylko na platformach systemu Windows, które mogą używać systemu plików NTFS Szyfrujące pliki (EFS). Każda próba użycia tej metody w systemach innych niż Windows, systemach Windows Home Edition lub dyskach innych niż NTFS powoduje wystąpienie elementu PlatformNotSupportedException lub NotSupportedException, w zależności od sytuacji.
Korzystanie z tego interfejsu API na platformie .NET Core nie jest zalecane; Jest on dołączony do włączania przenośności dla aplikacji, które przechodzą do platformy .NET Core, ale nadal jawnie przeznaczone dla systemu Windows.
Metoda Encrypt wymaga wyłącznego dostępu do zaszyfrowanego pliku i zakończy się niepowodzeniem, jeśli inny proces używa pliku.
Encrypt Zarówno metoda, jak i Decrypt metoda używają dostawcy usług kryptograficznych (CSP) zainstalowanego na komputerze i kluczy szyfrowania plików procesu wywołującego metodę.
Ta metoda nie jest dostępna we wszystkich wersjach systemu Windows. Na przykład nie jest dostępna w wersjach Home.
Bieżący system plików musi być sformatowany jako NTFS.