Compartir vía


File.Encrypt(String) Método

Definición

Cifra un archivo de forma que solo la cuenta utilizada para cifrarlo pueda descifrarlo.

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

Ruta de acceso que describe el archivo que se va a cifrar.

Atributos

Excepciones

Versiones de .NET Framework y .NET Core anteriores a 2.1: el path parámetro es una cadena de longitud cero, contiene solo espacios en blanco o contiene uno o varios caracteres no válidos. Puede consultar los caracteres no válidos con el método GetInvalidPathChars().

El parámetro path es null.

Se especificó una unidad no válida.

No se encontró el archivo que describe el parámetro path.

Se produjo un error de E/S al abrir el archivo.

o bien

Esta operación no es compatible con la plataforma actual.

La ruta de acceso especificada, el nombre de archivo o ambos superan la longitud máxima definida por el sistema.

El sistema operativo actual no es Windows NT o posterior.

El sistema de archivos no es NTFS.

El parámetro path especificó un archivo que es de solo lectura.

o bien

Esta operación no es compatible con la plataforma actual.

o bien

El parámetro path especificó un directorio.

o bien

El llamador no dispone del permiso requerido.

Ejemplos

En el ejemplo de código siguiente se usa el Encrypt método y el Decrypt método para cifrar y, a continuación, descifrar un archivo. El archivo debe existir para que el ejemplo 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

Comentarios

El Encrypt método permite cifrar un archivo para que solo la cuenta usada para llamar a este método pueda descifrarlo. Use el Decrypt método para descifrar un archivo cifrado por el Encrypt método .

Importante

Esta API solo se admite en plataformas Windows que pueden usar el sistema de cifrado de archivos NTFS (EFS). Cualquier intento de usarlo en sistemas que no son de Windows, sistemas Windows Home Edition o unidades no NTFS da como resultado un PlatformNotSupportedException o NotSupportedException, dependiendo de la situación.

No se recomienda el uso de esta API en .NET Core; se incluye para habilitar la portabilidad de las aplicaciones que se mueven a .NET Core, pero que siguen teniendo como destino Explícitamente Windows.

El Encrypt método requiere acceso exclusivo al archivo que se está cifrando y producirá un error si otro proceso usa el archivo .

Tanto el Encrypt método como el Decrypt método usan el proveedor de servicios criptográficos (CSP) instalado en el equipo y las claves de cifrado de archivos del proceso que llama al método .

Este método no está disponible en todas las versiones de Windows. Por ejemplo, no está disponible en las ediciones Home.

El sistema de archivos actual debe tener el formato NTFS.

Se aplica a