File.Decrypt(String) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Decrittografa un file crittografato dall'account corrente usando il metodo Encrypt(String).
public:
static void Decrypt(System::String ^ path);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static void Decrypt (string path);
public static void Decrypt (string path);
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member Decrypt : string -> unit
static member Decrypt : string -> unit
Public Shared Sub Decrypt (path As String)
Parametri
- path
- String
Percorso che descrive il file da decrittografare.
- Attributi
Eccezioni
.NET Framework e .NET Core versioni precedenti a 2.1: il path
parametro è una stringa di lunghezza zero, contiene solo spazio vuoto o contiene uno o più caratteri non validi. È possibile cercare i caratteri non validi usando il metodo GetInvalidPathChars().
Il valore del parametro path
è null
.
È stata specificata un'unità non valida.
Il file descritto dal parametro path
non è stato trovato.
Si è verificato un errore di I/O durante l'apertura del file. Ad esempio, il file crittografato è già aperto.
-oppure-
L'operazione non è supportata sulla piattaforma corrente.
Il percorso specificato, il nome file o entrambi superano la lunghezza massima definita dal sistema.
Il sistema operativo corrente non è Windows NT o versioni successive.
Il file system non è NTFS.
Il parametro path
specifica un file di sola lettura.
-oppure-
L'operazione non è supportata sulla piattaforma corrente.
-oppure-
Il parametro path
specifica una directory.
-oppure-
Il chiamante non dispone dell'autorizzazione richiesta.
Esempio
Nell'esempio di codice seguente viene usato il metodo e il EncryptDecrypt metodo per crittografare e quindi decrittografare un file. Il file deve esistere per il funzionamento dell'esempio.
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
Commenti
Il Decrypt metodo consente di decrittografare un file crittografato usando il Encrypt metodo . Il Decrypt metodo può decrittografare solo i file crittografati usando l'account utente corrente.
Importante
Questa API è supportata solo nelle piattaforme Windows in grado di usare NTFS Encrypting File System (EFS). Qualsiasi tentativo di usare questa operazione nei sistemi non Windows, nei sistemi Windows Home Edition o nelle unità non NTFS genera un PlatformNotSupportedException oggetto o NotSupportedException, a seconda della situazione.
Non è consigliabile usare questa API in .NET Core; è incluso per abilitare la portabilità per le applicazioni che passano a .NET Core, ma sono ancora destinate in modo esplicito a Windows.
Il Decrypt metodo richiede l'accesso esclusivo al file decrittografato e genererà un'eccezione se un altro processo usa il file.
Sia il Encrypt metodo che il Decrypt metodo usano il provider di servizi di crittografia (CSP) installato nel computer e le chiavi di crittografia dei file del processo che chiamano il metodo.
Il file system corrente deve essere formattato come NTFS e il sistema operativo corrente deve essere Windows NT o versione successiva.