File.Encrypt(String) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Zašifruje soubor tak, aby ho mohl dešifrovat jenom účet použitý k zašifrování souboru.
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
Cesta, která popisuje soubor k zašifrování.
- Atributy
Výjimky
.NET Framework a .NET Core verze starší než 2.1: Parametr path
je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků. Pomocí metody se můžete dotazovat na neplatné znaky GetInvalidPathChars() .
Parametr path
je null
.
Byla zadána neplatná jednotka.
Soubor popsaný parametrem path
nebyl nalezen.
Při otevírání souboru došlo ke vstupně-výstupní chybě.
-nebo-
Tato operace není na aktuální platformě podporovaná.
Zadaná cesta, název souboru nebo obojí překračují maximální délku definovanou systémem.
Aktuální operační systém není systém Windows NT nebo novější.
Systém souborů není NTFS.
Parametr path
určil soubor, který je jen pro čtení.
-nebo-
Tato operace není na aktuální platformě podporovaná.
-nebo-
Parametr path
určil adresář.
-nebo-
Volající nemá požadované oprávnění.
Příklady
Následující příklad kódu používá metodu Encrypt a metodu Decrypt k šifrování a dešifrování souboru. Aby příklad fungoval, musí soubor existovat.
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
Poznámky
Metoda Encrypt umožňuje zašifrovat soubor tak, aby ho mohl dešifrovat pouze účet použitý k volání této metody. Decrypt Pomocí metody dešifrujte soubor zašifrovaný metodou Encrypt .
Důležité
Toto rozhraní API je podporováno pouze na platformách Windows, které můžou používat systém souborů NTFS Encrypting File System (EFS). Při každém pokusu o použití v jiných systémech než Windows, v systémech Windows Home Edition nebo na jednotkách bez NTFS se v závislosti na situaci zobrazí PlatformNotSupportedExceptionNotSupportedExceptionnebo .
Použití tohoto rozhraní API v .NET Core se nedoporučuje. Je součástí, aby bylo možné povolit přenositelnost pro aplikace, které se přesouvají do .NET Core, ale stále explicitně cílí na Windows.
Metoda Encrypt vyžaduje výhradní přístup k zašifrovanému souboru a selže, pokud soubor používá jiný proces.
Encrypt Metoda i Decrypt metoda používají zprostředkovatele kryptografických služeb (CSP) nainstalovaného v počítači a šifrovací klíče souboru procesu volajícího metodu.
Tato metoda není k dispozici ve všech verzích Systému Windows. Není například k dispozici v edicích Home.
Aktuální systém souborů musí být naformátovaný jako NTFS.