File.Decrypt(String) File.Decrypt(String) File.Decrypt(String) File.Decrypt(String) Method

Definición

Descifra un archivo cifrado por la cuenta actual mediante el método Encrypt(String).Decrypts a file that was encrypted by the current account using the Encrypt(String) method.

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 String String String

Ruta de acceso que describe el archivo que se va a descifrar.A path that describes a file to decrypt.

Excepciones

El parámetro path es una cadena de longitud cero que solo contiene espacios en blanco o uno o varios caracteres no válidos definidos por InvalidPathChars.The path parameter is a zero-length string, contains only white space, or contains one or more invalid characters as defined by InvalidPathChars.

El parámetro path es null.The path parameter is null.

Se especificó una unidad no válida.An invalid drive was specified.

No se encontró el archivo que describe el parámetro path.The file described by the path parameter could not be found.

Se produjo un error de E/S al abrir el archivo.An I/O error occurred while opening the file. Por ejemplo, el archivo cifrado ya está abierto.For example, the encrypted file is already open.

o bien-or-

Esta operación no es compatible con la plataforma actual.This operation is not supported on the current platform.

La ruta de acceso especificada, el nombre de archivo o ambos superan la longitud máxima definida por el sistema.The specified path, file name, or both exceed the system-defined maximum length.

El sistema operativo actual no es Windows NT o posterior.The current operating system is not Windows NT or later.

El sistema de archivos no es NTFS.The file system is not NTFS.

El parámetro path especificó un archivo que es de solo lectura.The path parameter specified a file that is read-only.

O bien-or- Esta operación no es compatible con la plataforma actual.This operation is not supported on the current platform.

O bien-or- El parámetro path especificó un directorio.The path parameter specified a directory.

O bien-or- El llamador no dispone del permiso requerido.The caller does not have the required permission.

Ejemplos

En el ejemplo de código siguiente Encrypt se usa el Decrypt método y el método para cifrar y después descifrar un archivo.The following code example uses the Encrypt method and the Decrypt method to encrypt and then decrypt a file. El archivo debe existir para que el ejemplo funcione.The file must exist for the example to work.

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

Comentarios

El Decrypt método le permite descifrar un archivo que se cifró mediante Encrypt el método.The Decrypt method allows you to decrypt a file that was encrypted using the Encrypt method. El Decrypt método solo puede descifrar los archivos que se cifraron mediante la cuenta de usuario actual.The Decrypt method can decrypt only files that were encrypted using the current user account.

Importante

Esta API solo se admite en las plataformas de Windows que pueden usar el Sistema de cifrado de archivos NTFS (EFS).This API is only supported on Windows platforms that are able to use the NTFS Encrypting File System (EFS). Cualquier intento de usar esto en sistemas que no son de Windows, sistemas Windows Home Edition o unidades que no son NTFS produce PlatformNotSupportedException una NotSupportedExceptiono, dependiendo de la situación.Any attempt to use this on non-Windows systems, Windows Home Edition systems, or non-NTFS drives results in a PlatformNotSupportedException or NotSupportedException, depending on the situation.

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 todavía se dirigen explícitamente a Windows.Use of this API in .NET Core is not recommended; it is included to enable portability for applications that move to .NET Core but still explicitly target Windows.

El Decrypt método requiere acceso exclusivo al archivo que se está descifrando y generará una excepción si otro proceso está usando el archivo.The Decrypt method requires exclusive access to the file being decrypted, and will raise an exception if another process is using the file. Si el archivo no está cifrado Decrypt , devolverá un valor distinto de cero, que indica que la operación se ha realizado correctamente.If the file is not encrypted, Decrypt will return a nonzero value, which indicates success.

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.Both the Encrypt method and the Decrypt method use the cryptographic service provider (CSP) installed on the computer and the file encryption keys of the process calling the method.

El sistema de archivos actual debe tener el formato NTFS y el sistema operativo actual debe ser Windows NT o posterior.The current file system must be formatted as NTFS and the current operating system must be Windows NT or later.

Seguridad

FileIOPermission
para obtener permiso para leer y escribir en el archivo descrito por path el parámetro.for permission to read and write to the file described by the path parameter. Acción de seguridad: Bajo.Security action: Demand. Enumeraciones asociadas: Read,WriteAssociated enumerations: Read, Write

Se aplica a