File.Encrypt(String) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Шифрует файл таким образом, чтобы его можно было расшифровать только с помощью учетной записи, которая использовалась для шифрования.
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)
Параметры
- 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);
}
}
}
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
Комментарии
Этот Encrypt метод позволяет шифровать файл, чтобы только учетная запись, используемая для вызова этого метода, может расшифровать его. Decrypt Используйте метод для расшифровки файла, зашифрованного методомEncrypt.
Важно!
Этот API поддерживается только на платформах Windows, которые могут использовать файловую систему NTFS Encrypting (EFS). Любая попытка использовать это в системах, отличных от Windows, систем Windows Home Edition или дисках, отличных от NTFS, приводит к PlatformNotSupportedException или NotSupportedExceptionв зависимости от ситуации.
Использование этого API в .NET Core не рекомендуется; оно включается для обеспечения переносимости для приложений, которые переходят на .NET Core, но по-прежнему явно предназначены для Windows.
Метод Encrypt требует монопольного доступа к зашифрованным файлам и завершится ошибкой, если другой процесс использует файл.
Метод Encrypt и Decrypt метод используют поставщик служб шифрования (CSP), установленный на компьютере, и ключи шифрования файлов процесса, вызывающего метод.
Этот метод недоступен во всех версиях Windows. Например, он недоступен в выпусках Home.
Текущая файловая система должна быть отформатирована как NTFS.