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

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

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

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

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

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

Библиотека Aspose.ZIP для .NET является мощным инструментом для работы с операциями ZIP-файлов в приложениях .NET, что упрощает процесс сжатия или распаковки файлов и папок. Эта библиотека особенно эффективна для обработки больших файлов в ZIP-архивах C# .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# .NET, изучите следующие ресурсы:

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

Ключевые слова: Программное создание ZIP-архивов в C# .NET, Обработка ZIP-файлов в C# .NET Core, Добавление файлов в ZIP-архив в C# .NET 6, Добавление папок в ZIP-архив с использованием C# .NET, Программное создание ZIP-файла из каталога C#, Сжатие ZIP-файлов в C# .NET с защитой паролем, Программное шифрование и расшифровка ZIP-файлов в .NET, Эффективное создание ZIP-файлов в C# .NET для больших файлов, Обработка больших файлов в ZIP-архивах C# .NET, Обработка ошибок ZIP-архивов в C# .NET и лучшие практики, Программное добавление файлов в библиотеку ZIP Aspose .NET, Производительность библиотеки ZIP Aspose .NET для больших файлов, Библиотека ZIP Aspose .NET: Программное добавление папок и файлов, Программное обновление ZIP-файлов в C# .NET, ZIP-архив .NET: Добавление нескольких папок и файлов, Асинхронное создание ZIP-файлов в C# .NET, Программное создание ZIP-файлов в .NET Framework, Программное создание ZIP-архивов в .NET Core, Примеры манипуляций с ZIP-файлами в .NET: Добавление, Удаление, Обновление, Программная обработка ZIP-файлов в C# .NET Core 3.1, Программная обработка ZIP-файлов в C# .NET 5, Программная обработка ZIP-файлов в C# .NET 7, ZIP-архив C# .NET с сохранением структуры каталогов, API ZIP-файлов C# .NET: Добавление, Удаление, Извлечение, Создание самораспаковывающихся ZIP-файлов в C# .NET, Библиотека сжатия ZIP .NET: Лучшие практики и оптимизация, Создание ZIP-файлов C# .NET из нескольких источников, Добавление файлов в ZIP-папку с подкаталогами, Программная обработка ZIP-файлов в .NET: Продвинутые техники, Рекомендация библиотеки ZIP C# .NET для больших файлов, Эффективное создание ZIP-файлов C# .NET для больших наборов данных, Создание ZIP-файлов .NET с отчетом о прогрессе, ZIP-архив C# .NET: Программное добавление файлов и папок, Обработка ZIP-файлов в .NET 6: Эффективная обработка файлов, ZIP-архив C# .NET: Лучшие практики безопасности, API ZIP-файлов .NET: Расширенное использование и функции, Добавление каталога в ZIP-архив с пользовательским сжатием.