File.Encrypt(String) Método

Definição

Encripta um ficheiro para que apenas a conta usada para encriptar o ficheiro possa desencriptá-lo.

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

Parâmetros

path
String

Um caminho que descreve um ficheiro a encriptar.

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.

-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 Encrypt método permite-lhe encriptar um ficheiro para que apenas a conta usada para chamar este método possa desencriptá-lo. Use o Decrypt método para desencriptar um ficheiro encriptado pelo Encrypt método.

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 Encrypt método requer acesso exclusivo ao ficheiro a encriptar e falhará 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.

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

O sistema de ficheiros atual deve ser formatado como NTFS.

Aplica-se a