Condividi tramite


File.Decrypt(String) Metodo

Definizione

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.

Si applica a