Windows apps
Collapse the table of content
Expand the table of content
Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

File::Decrypt Method (String^)

 

Decrypts a file that was encrypted by the current account using the Encrypt method.

Namespace:   System.IO
Assembly:  mscorlib (in mscorlib.dll)

public:
static void Decrypt(
	String^ path
)

Parameters

path
Type: System::String^

A path that describes a file to decrypt.

Exception Condition
ArgumentException

The path parameter is a zero-length string, contains only white space, or contains one or more invalid characters as defined by InvalidPathChars.

ArgumentNullException

The path parameter is null.

DriveNotFoundException

An invalid drive was specified.

FileNotFoundException

The file described by the path parameter could not be found.

IOException

An I/O error occurred while opening the file. For example, the encrypted file is already open.

-or-

This operation is not supported on the current platform.

PathTooLongException

The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.

PlatformNotSupportedException

The current operating system is not Windows NT or later.

NotSupportedException

The file system is not NTFS.

UnauthorizedAccessException

The path parameter specified a file that is read-only.

-or-

This operation is not supported on the current platform.

-or-

The path parameter specified a directory.

-or-

The caller does not have the required permission.

The Decrypt method allows you to decrypt a file that was encrypted using the Encrypt method. The Decrypt method can decrypt only files that were encrypted using the current user account.

The Decrypt method requires exclusive access to the file being decrypted, and will raise an exception if another process is using the file. If the file is not encrypted, Decrypt will return a nonzero value, which indicates success.

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.

The current file system must be formatted as NTFS and the current operating system must be Windows NT or later.

The following code example uses the Encrypt method and the Decrypt method to encrypt and then decrypt a file. 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.");
    }
}

FileIOPermission

for permission to read and write to the file described by the path parameter. Security action: Demand. Associated enumerations: FileIOPermissionAccess::Read, FileIOPermissionAccess::Write

.NET Framework
Available since 2.0
Return to top
Show:
© 2017 Microsoft