File.Decrypt(String) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.