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

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

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

В этой статье мы рассмотрим различные методы программного создания ZIP-архивов в C#. Вы узнаете, как:

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

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

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

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

  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 для добавления файлов. Этот метод загружает файлы с помощью класса 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-архив в C#:

Создать 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.ZIP для .NET предоставляет несколько режимов параллельного сжатия:

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

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

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

Углубитесь в наш C# ZIP API с помощью следующих ресурсов:

Попробуйте 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 онлайн