File.Decrypt(String) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Расшифровывает файл, зашифрованный текущей учетной записью с помощью метода Encrypt(String).
public:
static void Decrypt(System::String ^ path);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static void Decrypt (string path);
public static void Decrypt (string path);
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member Decrypt : string -> unit
static member Decrypt : string -> unit
Public Shared Sub Decrypt (path As String)
Параметры
- path
- String
Путь, описывающий файл, который нужно расшифровать.
- Атрибуты
Исключения
платформа .NET Framework и .NET Core версий старше 2.1. Параметр path
представляет собой строку нулевой длины, содержит только пробелы или один или несколько недопустимых символов. Вы можете запросить недопустимые символы с помощью метода GetInvalidPathChars().
Параметр path
имеет значение null
.
Указан недопустимый диск.
Файл, описываемый параметром path
, не найден.
При открытии файла произошла ошибка ввода-вывода. Например зашифрованный файл уже открыт.
-или-
Эта операция не поддерживается на текущей платформе.
Указанный путь, имя файла или оба значения превышают максимальную длину, заданную в системе.
Текущая операционная система не является системой Windows NT или более поздней версии.
Файловая система не является системой NTFS.
Параметр path
указывает файл, доступный только для чтения.
-или-
Эта операция не поддерживается на текущей платформе.
-или-
Параметр path
указывает каталог.
-или-
У вызывающего объекта отсутствует необходимое разрешение.
Примеры
В следующем примере кода используются методы Encrypt и для шифрования Decrypt , а затем расшифровки файла. Файл должен существовать, чтобы пример работал.
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
Комментарии
Метод Decrypt позволяет расшифровать файл, зашифрованный с помощью Encrypt метода . Метод Decrypt может расшифровывать только файлы, которые были зашифрованы с помощью текущей учетной записи пользователя.
Важно!
Этот API поддерживается только на платформах Windows, которые могут использовать шифрованная файловая система NTFS (EFS). Любая попытка использовать эту функцию в системах, отличных от Windows, Windows Home Edition или дисках без NTFS, в зависимости от ситуации приводит к или PlatformNotSupportedExceptionNotSupportedException.
Использование этого API в .NET Core не рекомендуется; Он включается для обеспечения переносимости приложений, которые перемещаются в .NET Core, но по-прежнему явно предназначены для Windows.
Метод Decrypt требует монопольного доступа к расшифровываемым файлу и вызывает исключение, если файл используется другим процессом. Если файл не зашифрован, Decrypt возвращает ненулевое значение, указывающее на успешное выполнение.
Encrypt Метод и Decrypt метод используют поставщик служб шифрования (CSP), установленный на компьютере, и ключи шифрования файлов процесса, вызывающего метод .
Текущая файловая система должна быть отформатирована как NTFS, а текущая операционная система должна быть Windows NT или более поздней версии.
Применяется к
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по