добавлять файлы или папки в zip-архивы с помощью csharp

ZIP-файлы — это наиболее распространенные типы архивных файлов, которые используются для хранения сжатых файлов и папок в одном контейнере. Как разработчик C#, вы можете легко программно создавать зашифрованные или защищенные паролем ZIP-архивы, используя C# в своих приложениях .NET. В этой статье вы узнаете, как создавать зашифрованные ZIP-файлы с помощью C#.

В этой статье обсуждаются/рассматриваются следующие темы:

C# API для создания зашифрованных ZIP-файлов

Для создания зашифрованных архивов ZIP я буду использовать Aspose.ZIP для .NET API. Он позволяет сжимать файлы и папки и добавлять их в ZIP-архивы. Он также позволяет распаковывать архивы поддерживаемых типов, таких как ZIP, TAR, GZIP, BZ2, 7Zip, RAR и т. д. API обеспечивает защиту с помощью определяемых пользователем паролей и традиционных методов шифрования с использованием шифрования AES, таких как AES128, AES192 и AES256. .

Вы можете либо скачать DLL API, либо установить его с помощью NuGet.

Install-Package Aspose.ZIP

Создание ZIP-файлов, защищенных паролем

Вы можете легко программно создавать защищенные паролем ZIP-архивы, выполнив следующие действия:

  1. Создайте экземпляр класса Archive с объектом ArchiveEntrySettings.
  2. Установите пароль с помощью объекта TraditionalEncryptionSettings.
  3. Вызовите метод CreatEntry(), указав путь к входному файлу для добавления в архив.
  4. Повторите вышеуказанный шаг, чтобы добавить несколько файлов.
  5. Вызовите метод Save() с путем к выходному файлу, чтобы сохранить выходной файл.

В следующем примере кода показано, как создать ZIP-файл, защищенный паролем, с помощью C#.

// создать архив
Archive archive = new Archive(new ArchiveEntrySettings(encryptionSettings: new TraditionalEncryptionSettings("12345")));

// Добавить файлы в архив
archive.CreateEntry("sample1.txt", "C:\\Files\\sample1.txt");
archive.CreateEntry("sample2.txt", "C:\\Files\\sample2.txt");

// сохранить архив
archive.Save("C:\\Files\\password_protcted.zip");
Создавайте защищенные паролем ZIP-архивы

Создавайте защищенные паролем ZIP-архивы

Класс Archive представляет файл ZIP-архива. Он предоставляет несколько методов для создания, составления, извлечения или обновления ZIP-архивов. Метод CreatEntry() этого класса создает одну запись файла в архиве. В качестве входных параметров он принимает имя файла и полный путь к файлу. Этот класс также предоставляет перегруженные методы CreatEntry() для добавления файлов из потока или FileInfo. Метод Save() этого класса сохраняет ZIP-архив по указанному пути к файлу.

Класс ArchiveEntrySettings предоставляет параметры для сжатия или распаковки записей. Класс TraditionalEncryptionSetings предоставляет настройки для традиционного алгоритма ZipCrypto. Это алгоритм защиты паролем ZIP. Свойство Password этого класса позволяет получить или установить пароль для шифрования или расшифровки файлов и папок в ZIP-архиве.

Создавайте зашифрованные ZIP-файлы с шифрованием AES

Вы можете программно зашифровать свои ZIP-архивы с помощью шифрования AES, выполнив следующие действия:

  1. Создайте экземпляр класса Archive с объектом ArchiveEntrySettings.
  2. Установите пароль с помощью класса AesEcryptionSettings. Передайте строку пароля и EncryptionMethod в качестве аргументов конструктору.
  3. Вызовите метод CreatEntry(), указав путь к входному файлу для добавления в архив.
  4. Повторите вышеуказанный шаг, чтобы добавить несколько файлов.
  5. Вызовите метод Save() с путем к выходному файлу, чтобы сохранить выходной файл.

В следующем примере кода показано, как создать ZIP-файл, зашифрованный с помощью шифрования AES с помощью C#.

// создать архив
Archive archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES128)));

// Добавить файлы в архив
archive.CreateEntry("abc.txt", "C:\\Files\\sample1.txt");

// сохранить архив
archive.Save("C:\\Files\\aes.zip");

Класс AesEncryptionSettings предоставляет параметры алгоритма шифрования или дешифрования AES. Advanced Encryption Standard (AES) — это алгоритм симметричного шифрования или дешифрования блочного шифра.

Вы можете использовать следующие типы методов шифрования:

  • Традиционное — традиционное шифрование PKWARE
  • AES128 — расширенный стандарт шифрования с длиной ключа 128 бит.
  • AES192 — расширенный стандарт шифрования с длиной ключа 192 бита.
  • AES256 — расширенный стандарт шифрования с длиной ключа 256 бит.

Зашифровать папки в ZIP-файлах

Вы можете программно добавить защищенные паролем папки в ZIP-файлы, выполнив следующие действия:

  1. Создайте экземпляр класса Archive с объектом ArchiveEntrySettings.
  2. Установите пароль с помощью объекта TraditionalEncryptionSettings.
  3. Вызовите метод CreatEntries() с указанием пути к папке для добавления в архив.
  4. Повторите вышеуказанный шаг, чтобы добавить несколько папок.
  5. Вызовите метод Save() с путем к выходному файлу, чтобы сохранить выходной файл.

В следующем примере кода показано, как добавить зашифрованную папку в ZIP-файл с помощью C#.

// создать архив
Archive archive = new Archive(new ArchiveEntrySettings(null, new TraditionalEncryptionSettings("123@45")));

// Добавить папку в архив
archive.CreateEntries("C:\\Files\\MyFolder");

// сохранить архив
archive.Save("C:\\Files\\password_protcted_folder.zip");

Шифрование определенных файлов в ZIP-архивах

Вы можете программно зашифровать определенные файлы в ZIP-архивах, выполнив следующие действия:

  1. Создайте экземпляр класса Архив.
  2. Вызовите метод CreatEntry(), указав путь к входному файлу для добавления в архив.
  3. Установите пароль для файла, используя ArchiveEntrySettings с TraditionalEncryptionSettings.
  4. Вызовите метод CreatEntry() с входным путем к файлу, чтобы добавить еще один файл в архив.
  5. Повторите вышеуказанные шаги, чтобы добавить больше файлов.
  6. Вызовите метод Save() с путем к выходному файлу, чтобы сохранить выходной файл.

В следующем примере кода показано, как зашифровать определенные файлы в ZIP-архиве с помощью C#.

// создать архив
Archive archive = new Archive();

// Добавить файлы в архив
archive.CreateEntry("sample1.txt", "C:\\Files\\sample1.txt");
archive.CreateEntry("sample2.txt", "C:\\Files\\sample2.txt", false, new ArchiveEntrySettings(encryptionSettings: new TraditionalEncryptionSettings("123@abc")));

// сохранить архив
archive.Save("C:\\Files\\password_protcted.zip");
Шифрование определенных файлов в ZIP-архивах

Шифровать определенные файлы в ZIP-архивах

Создание зашифрованных ZIP-файлов со смешанным шифрованием

Вы можете программно создавать ZIP-архивы, содержащие файлы и папки, защищенные с помощью смешанных методов шифрования, различающихся для каждого файла и папки, выполнив следующие шаги:

  1. Создайте экземпляр класса Архив.
  2. Вызовите метод CreatEntry(), указав путь к входному файлу для добавления в архив.
  3. Установите пароль для файла, используя ArchiveEntrySettings с AesEcryptionSettings.
  4. Вызовите метод CreatEntry() с входным путем к файлу, чтобы добавить еще один файл в архив.
  5. Установите пароль для файла, используя ArchiveEntrySettings с TraditionalEncryptionSettings.
  6. Вызовите метод CreatEntry() с входным путем к файлу, чтобы добавить еще один файл в архив.
  7. Вызовите метод CreateEntries() с указанием пути к папке для добавления в архив.
  8. Сохраните выходной файл с помощью метода Save() с указанием пути к выходному файлу.

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

// создать архив
Archive archive = new Archive();

// Добавить файл с шифрованием AES в архив
archive.CreateEntry("sample1.txt", "C:\\Files\\sample1.txt", false, new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES128)));

// Добавить файл с традиционным шифрованием в архив
archive.CreateEntry("sample2.txt", "C:\\Files\\sample2.txt", false, new ArchiveEntrySettings(encryptionSettings: new TraditionalEncryptionSettings("321")));

// Добавить файл без шифрования в архив
archive.CreateEntry("sample3.txt", "C:\\Files\\sample2.txt");

// Добавить папку без шифрования в архив
archive.CreateEntries("C:\\Files\\MyFolder");

// сохранить архив
archive.Save("C:\\Files\\Mixed.zip");
Создавайте зашифрованные ZIP-архивы со смешанным шифрованием

Создайте зашифрованный ZIP-файл со смешанным шифрованием

Получить бесплатную лицензию

Вы можете попробовать API без ограничений на пробную версию, запросив бесплатную временную лицензию.

Вывод

В этой статье вы узнали, как создавать зашифрованные ZIP-файлы с помощью C#. Вы также узнали, как программно создать ZIP-файл, защищенный паролем. Более того, вы научились шифровать определенные файлы в ZIP-архивах. Кроме того, вы узнали, как добавлять защищенные паролем папки в ZIP-файлы. В этой статье также объясняется, как создать ZIP-файл, зашифрованный с помощью смешанных методов шифрования с использованием C#. Вы можете узнать больше об Aspose.ZIP для .NET API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также