Поделиться через


FileInfo.Decrypt Метод

Определение

Расшифровывает файл, зашифрованный текущей учетной записью с помощью метода Encrypt().

public:
 void Decrypt();
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public void Decrypt ();
public void Decrypt ();
[System.Runtime.InteropServices.ComVisible(false)]
public void Decrypt ();
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
member this.Decrypt : unit -> unit
member this.Decrypt : unit -> unit
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.Decrypt : unit -> unit
Public Sub Decrypt ()
Атрибуты

Исключения

Указан недопустимый диск.

Не удалось найти файл, описанный текущим объектом FileInfo.

При открытии файла произошла ошибка ввода-вывода.

Файловая система не является системой NTFS.

Текущая операционная система не является системой Microsoft Windows NT или более поздней версии.

Файл, описанный текущим объектом FileInfo, доступен только для чтения.

-или-

Эта операция не поддерживается на текущей платформе.

-или-

У вызывающего объекта отсутствует необходимое разрешение.

Примеры

В следующем примере кода используются методы Encrypt и для шифрования Decrypt , а затем расшифровки файла.

using namespace System;
using namespace System::IO;
using namespace System::Security::AccessControl;


    static void Addencryption(String^ fileName)
{
    // Create a new FileInfo object.
    FileInfo^ fInfo = gcnew FileInfo(fileName);
    if (!fInfo->Exists)
    {
        fInfo->Create();
    }
    // Add encryption.
    fInfo->Encrypt();
    
}


    static void Removeencryption(String^ fileName)
{
//    Create a new FileInfo object.
    FileInfo^ fInfo = gcnew FileInfo(fileName);
    if (!fInfo->Exists)
    {
        fInfo->Create();
    }
    // Remove encryption.
    fInfo->Decrypt();
}

int main()
{
    try
    {
        String^ fileName = "c:\\MyTest.txt";
        Console::WriteLine("Encrypt " + fileName);

        // Encrypt the file.
     
        Addencryption(fileName);
        Console::WriteLine("Decrypt " + fileName);

        // Decrypt the file.
        Removeencryption(fileName);
        Console::WriteLine("Done");
     }
     catch (IOException^ ex)
     {
        Console::WriteLine(ex->Message);
     }
}
//This code produces output similar to the following; 
//results may vary based on the computer/file structure/etc.:
//
//Encrypt c:\MyTest.txt
//Decrypt c:\MyTest.txt
//Done
using System;
using System.IO;
using System.Security.AccessControl;

namespace FileSystemExample
{
    class FileExample
    {
        public static void Main()
        {
            try
            {
                string FileName = @"c:\MyTest.txt";

                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);
            }
        }

        public static void AddEncryption(string FileName)
        {
            // Create a new FileInfo object.
            FileInfo fInfo = new FileInfo(FileName);
            if (!fInfo.Exists)
            {
                //Create the file.
                fInfo.Create();
            }
            // Add encryption.
            fInfo.Encrypt();
        }

        public static void RemoveEncryption(string FileName)
        {
            // Create a new FileInfo object.
            FileInfo fInfo = new FileInfo(FileName);
            if (!fInfo.Exists)
            {
                //Create the file.
                fInfo.Create();
            }
            // Remove encryption.
            fInfo.Decrypt();
        }
    }
}

//This code produces output similar to the following;
//results may vary based on the computer/file structure/etc.:
//
//Encrypt c:\MyTest.txt
//Decrypt c:\MyTest.txt
//Done
Imports System.IO
Imports System.Security.AccessControl



Module FileExample

    Sub Main()
        Try
            Dim FileName As String = "c:\MyTest.txt"

            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

    End Sub



    Sub AddEncryption(ByVal FileName As String)
        ' Create a new FileInfo object.
        Dim fInfo As New FileInfo(FileName)
        If fInfo.Exists = False Then
            fInfo.Create()
        End If
        ' Add encryption.
        fInfo.Encrypt()

    End Sub



    Sub RemoveEncryption(ByVal FileName As String)
        ' Create a new FileInfo object.
        Dim fInfo As New FileInfo(FileName)
        If fInfo.Exists = False Then
            fInfo.Create()
        End If
        ' Remove encryption.
        fInfo.Decrypt()

    End Sub
End Module
'This code produces output similar to the following; 
'results may vary based on the computer/file structure/etc.:
'
'Encrypt c:\MyTest.txt
'Decrypt c:\MyTest.txt
'Done

Комментарии

Метод Decrypt позволяет расшифровать файл, зашифрованный с помощью Encrypt метода . Метод Decrypt может расшифровывать только файлы, которые были зашифрованы с помощью текущей учетной записи пользователя.

Encrypt Метод и Decrypt метод используют поставщик служб шифрования (CSP), установленный на компьютере, и ключи шифрования файлов процесса, вызывающего метод .

Текущая файловая система должна быть отформатирована как NTFS, а текущая операционная система должна быть microsoft Windows NT или более поздней версии.

Применяется к