File.Decrypt(String) Método

Definição

Descifra um ficheiro que foi encriptado pela conta corrente usando o Encrypt(String) método.

public:
 static void Decrypt(System::String ^ path);
public static void Decrypt(string path);
static member Decrypt : string -> unit
Public Shared Sub Decrypt (path As String)

Parâmetros

path
String

Um caminho que descreve um ficheiro a desencriptar.

Exceções

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

O path parâmetro é null.

Foi especificado um disco inválido.

O ficheiro descrito pelo path parâmetro não foi encontrado.

Ocorreu um erro de E/S durante a abertura do ficheiro. Por exemplo, o ficheiro encriptado já está aberto.

-ou-

Esta operação não é suportada na plataforma atual.

O caminho especificado, nome do ficheiro ou ambos excedem o comprimento máximo definido pelo sistema.

O sistema operativo atual não é Windows NT nem versões posteriores.

O sistema de ficheiros não é NTFS.

O path parâmetro especificava um ficheiro que era apenas leitura.

-ou-

Esta operação não é suportada na plataforma atual.

-ou-

O path parâmetro especificava um diretório.

-ou-

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

Exemplos

O exemplo de código seguinte utiliza o Encrypt método e o Decrypt método para encriptar e depois desencriptar um ficheiro. O ficheiro deve existir para que o exemplo funcione.

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

Observações

O Decrypt método permite-lhe desencriptar um ficheiro que foi encriptado usando o Encrypt método. O Decrypt método só pode desencriptar ficheiros que foram encriptados usando a conta de utilizador atual.

Importante

Esta API é apenas suportada em plataformas Windows que conseguem usar o Sistema de Ficheiros de Encriptação NTFS (EFS). Qualquer tentativa de usar isto em sistemas não Windows, Windows sistemas Home Edition ou discos não NTFS resulta num PlatformNotSupportedException ou NotSupportedException, dependendo da situação.

A utilização desta API no .NET Core não é recomendada; está incluída para permitir portabilidade para aplicações que migram para o .NET Core mas que ainda têm como alvo explicito o Windows.

O Decrypt método requer acesso exclusivo ao ficheiro a ser desencriptado e gera uma exceção se outro processo estiver a usar o ficheiro.

Tanto o Encrypt método como o Decrypt método utilizam o fornecedor de serviços criptográficos (CSP) instalado no computador e as chaves de encriptação de ficheiros do processo que chama o método.

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

Aplica-se a