Compartilhar via


File.Decrypt(String) Método

Definição

Descriptografa um arquivo que foi criptografado pela conta atual usando o método 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)

Parâmetros

path
String

Um caminho que descreve um arquivo a ser descriptografado.

Atributos

Exceções

Versões do .NET Framework e do .NET Core anteriores à 2.1: o path parâmetro é uma cadeia de caracteres de comprimento zero, contém apenas espaço em branco ou contém um ou mais caracteres inválidos. Consulte caracteres inválidos usando o método GetInvalidPathChars().

O parâmetro path é null.

Uma unidade inválida foi especificada.

O arquivo descrito pelo parâmetro path não pôde ser encontrado.

Um erro de E/S ocorreu ao abrir o arquivo. Por exemplo, o arquivo criptografado já está aberto.

- ou -

Não há suporte para essa operação na plataforma atual.

O caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.

O sistema operacional atual não é o Windows NT ou posterior.

O sistema de arquivos não é NTFS.

O parâmetro path especificou um arquivo somente leitura.

- ou -

Não há suporte para essa operação na plataforma atual.

- ou -

O parâmetro path especificou um diretório.

- ou -

O chamador não tem a permissão necessária.

Exemplos

O exemplo de código a seguir usa o Encrypt método e o Decrypt método para criptografar e descriptografar um arquivo. O arquivo deve existir para que o exemplo funcione.

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

Comentários

O Decrypt método permite descriptografar um arquivo que foi criptografado usando o Encrypt método . O Decrypt método pode descriptografar somente arquivos que foram criptografados usando a conta de usuário atual.

Importante

Essa API só tem suporte em plataformas Windows que podem usar o EFS (Sistema de Arquivos de Criptografia NTFS). Qualquer tentativa de usar isso em sistemas não Windows, sistemas Windows Home Edition ou unidades não NTFS resulta em um PlatformNotSupportedException ou NotSupportedException, dependendo da situação.

O uso dessa API no .NET Core não é recomendado; ele está incluído para habilitar a portabilidade para aplicativos que se movem para o .NET Core, mas ainda direcionam explicitamente o Windows.

O Decrypt método requer acesso exclusivo ao arquivo que está sendo descriptografado e gerará uma exceção se outro processo estiver usando o arquivo.

Encrypt O método e o Decrypt método usam o CSP (provedor de serviços criptográfico) instalado no computador e as chaves de criptografia de arquivo do processo que chama o método .

O sistema de arquivos atual deve ser formatado como NTFS e o sistema operacional atual deve ser o Windows NT ou posterior.

Aplica-se a