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

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

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

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

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

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

Библиотека 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:

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

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

Попробуйте наш онлайн-инструмент сжатия 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 онлайн