Прочитать на английском

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


File.Encrypt(String) Метод

Определение

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

C#
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static void Encrypt (string path);
C#
public static void Encrypt (string path);

Параметры

path
String

Путь, описывающий файл, который нужно зашифровать.

Атрибуты

Исключения

платформа .NET Framework и .NET Core версий старше 2.1: path параметр представляет собой строку нулевой длины, содержит только пробелы или один или несколько недопустимых символов. Вы можете запросить недопустимые символы с помощью метода GetInvalidPathChars().

Параметр path имеет значение null.

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

Файл, описываемый параметром path, не найден.

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

-или-

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

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

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

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

Параметр path указывает файл, доступный только для чтения.

-или-

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

-или-

Параметр path указывает каталог.

-или-

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

Примеры

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

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

Комментарии

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

Важно!

Этот API поддерживается только на платформах Windows, которые могут использовать файловую систему ntfs Encrypting File System (EFS). Любая попытка использовать эту функцию на дисках, отличных от Windows, Windows Home Edition или на дисках без NTFS, в PlatformNotSupportedExceptionNotSupportedExceptionзависимости от ситуации приводит к или .

Использовать этот API в .NET Core не рекомендуется; Он включается для обеспечения переносимости приложений, которые переходят на .NET Core, но по-прежнему явно ориентированы на Windows.

Метод Encrypt требует монопольного доступа к зашифрованным файлам и завершится ошибкой, если файл используется другим процессом.

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

Этот метод доступен не во всех версиях Windows. Например, он недоступен в выпусках Home.

Текущая файловая система должна быть отформатирована как NTFS.

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

Продукт Версии
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1