File.Encrypt(String) Método

Definição

Criptografa um arquivo para que somente a conta usada para criptografar o arquivo possa descriptografá-lo.

public:
 static void Encrypt(System::String ^ path);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static void Encrypt (string path);
public static void Encrypt (string path);
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member Encrypt : string -> unit
static member Encrypt : string -> unit
Public Shared Sub Encrypt (path As String)

Parâmetros

path
String

Um caminho que descreve um arquivo a ser criptografado.

Atributos

Exceções

.NET Framework e versões do .net Core anteriores a 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.

- 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, em seguida, 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);
        }
    }
}
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 Encrypt método permite criptografar um arquivo para que apenas a conta usada para chamar esse método possa descriptografá-lo. Use o Decrypt método para descriptografar um arquivo criptografado pelo Encrypt método.

Importante

essa API só tem suporte em plataformas Windows que são capazes de usar o sistema de arquivos com criptografia de NTFS (EFS). qualquer tentativa de usar isso em sistemas não Windows, Windows Home Edition systems 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 têm como alvo explicitamente Windows.

O Encrypt método requer acesso exclusivo ao arquivo que está sendo criptografado e falhará se outro processo estiver usando o arquivo.

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

Este método não está disponível em todas as versões do Windows. Por exemplo, ele não está disponível nas edições Home.

O sistema de arquivos atual deve ser formatado como NTFS.

Aplica-se a