Создание ZIP в C#

Введение в ZIP-архивы на C#

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

Что вы узнаете

В этой статье вы узнаете, как:

C# ZIP Библиотека

Библиотека Aspose.ZIP для .NET является мощным инструментом для обработки операций с ZIP-файлами в приложениях .NET. Она упрощает процесс сжатия или распаковки файлов и папок и поддерживает AES шифрование для повышения безопасности. Вы можете легко установить эту библиотеку из NuGet или скачать бинарные файлы из раздела Загрузки.

Создать ZIP-архив на C#

Чтобы программно создать ZIP-файл на C#, выполните следующие шаги:

  1. Создайте объект FileStream для выходного ZIP-архива.
  2. Откройте исходный файл как объект FileStream.
  3. Создайте экземпляр класса Archive.
  4. Добавьте файл в архив с помощью метода Archive.CreateEntry(string, FileStream).
  5. Сохраните ZIP-архив с помощью метода Archive.Save(FileStream).

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

Добавить несколько файлов в ZIP-архив на C#

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

Использование FileStream для добавления нескольких файлов

Этот метод использует класс FileStream для добавления файлов в ZIP-архив через метод Archive.CreateEntry(String, FileStream). Вот как это можно сделать:

Использование FileInfo для нескольких файлов

В качестве альтернативы вы можете использовать класс FileInfo, чтобы загрузить файлы и добавить их в ZIP-архив с помощью метода Archive.CreateEntry(String, FileInfo). Ниже приведен пример кода:

Использование путей к файлам

Вы также можете напрямую предоставить пути к файлам методу Archive.CreateEntry(String name, String path, Boolean openImmediately, ArchiveEntrySettings newEntrySettings). Вот пример:

Добавить папки в ZIP-архив на C#

Чтобы добавить папку в ZIP-архив на C#, выполните следующие шаги:

  1. Создайте объект FileStream для выходного ZIP-архива.
  2. Создайте экземпляр класса Archive.
  3. Используйте класс DirectoryInfo, чтобы указать папку, которую вы хотите заархивировать.
  4. Добавьте папку в ZIP с помощью метода Archive.CreateEntries(DirectoryInfo).
  5. Сохраните ZIP-архив с помощью метода Archive.Save(FileStream).

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

Создать ZIP с защитой паролем с использованием ZipCrypto на C#

Чтобы защитить ваши ZIP-архивы, вы можете применить защиту паролем с использованием шифрования ZipCrypto. Это достигается с помощью использования класса ArchiveEntrySettings в конструкторе Archive, который принимает тип шифрования в качестве параметра.

Вот как создать ZIP-архив с защитой паролем с использованием ZipCrypto на C#:

Создать ZIP с защитой паролем с AES шифрованием

Библиотека Aspose.ZIP для .NET также поддерживает AES шифрование для защиты ZIP-архивов. Вы можете выбрать один из следующих методов AES шифрования:

  • AES128
  • AES192
  • AES256

Чтобы применить AES шифрование, используйте класс AesEcryptionSettings. Ниже приведен пример кода, демонстрирующий, как создать ZIP с защитой паролем с AES шифрованием на C#:

Установить режим параллельного сжатия

Для эффективной обработки нескольких записей вы можете настроить API для параллельного сжатия с использованием класса ParallelOptions. Доступные режимы параллельного сжатия:

  • Никогда - Не сжимать параллельно.
  • Всегда - Сжимать параллельно (осторожно с возможными проблемами с памятью).
  • Авто - Автоматически решать, использовать ли параллельное сжатие в зависимости от записей.

Вот как установить режим параллельного сжатия при сжатии нескольких файлов с помощью библиотеки Aspose C# ZIP:

Узнайте больше о C# .NET ZIP Библиотеке

Чтобы углубить свои знания о C# ZIP библиотеке, изучите следующие ресурсы:

Попробуйте наш онлайн инструмент сжатия ZIP

Вы также можете поэкспериментировать с нашим бесплатным онлайн приложением на основе Aspose.ZIP для .NET для легкого сжатия файлов в ZIP-архивы.

Заключение

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

См. также

Распаковка или извлечение файлов с использованием C#Распаковка файлов в ZIP-архивах с использованием C#Создание архивов 7z (7-Zip) на C# .NET
Открытие или извлечение 7z (7zip) файла на C# .NETСоздание и извлечение GZip архивов с использованием C#Конвертация RAR файлов в ZIP-архив на C#
Конвертация ZIP-архивов в TAR на C#Создание плоского ZIP-архива на C#Создание исполняемого самораспаковывающегося архива на C#
Создание файлов TAR.GZ и TAR.XZ на C#Удаление файлов в ZIP-архиве на C#Извлечение вложенных ZIP-архивов на C#
Объединение нескольких ZIP или TAR архивов на C#Как создать ZIP файлыИзвлечение 7z онлайн