
Введение в ZIP-архивы
ZIP-архивы необходимы для сжатия и объединения одного или нескольких файлов или папок в один контейнер. Этот формат не только уменьшает размер файла для хранения и передачи, но и сохраняет метаданные, что упрощает управление файлами. ZIP-архивы широко используются как в настольных, так и в веб-приложениях для задач, таких как загрузка, скачивание, обмен и защита файлов с помощью шифрования.
В этой статье мы рассмотрим различные методы программного создания ZIP-архивов в C#. Вы узнаете, как:
- Создать ZIP-архив с помощью C#
- Добавить несколько файлов в ZIP-архив
- Добавить папки в ZIP-архив
- Создать ZIP-архив с паролем с использованием ZipCrypto
- Зашифровать ZIP-архив с помощью AES шифрования
- Установить режим параллельного сжатия
Библиотека ZIP для C#
Aspose.ZIP для .NET — это мощный API, предназначенный для упаковки и распаковки файлов и папок в приложениях .NET. Он предлагает такие функции, как AES шифрование для защиты ваших файлов в ZIP-архивах. Вы можете легко установить API из NuGet или скачать бинарные файлы из раздела Загрузки.
Создать ZIP-архив в C#
Чтобы сжать файл в ZIP-архив, выполните следующие шаги:
- Создайте объект FileStream для выходного ZIP-архива.
- Откройте исходный файл с помощью объекта FileStream.
- Создайте экземпляр класса Archive.
- Добавьте файл в архив с помощью метода Archive.CreateEntry(string, FileStream).
- Сохраните 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#, выполните следующие шаги:
- Создайте объект FileStream для выходного ZIP-архива.
- Создайте экземпляр класса Archive.
- Используйте класс DirectoryInfo, чтобы указать папку для сжатия.
- Добавьте папку в ZIP с помощью метода Archive.CreateEntries(DirectoryInfo).
- Сохраните 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 шифрования. Мы также обсудили параллельное сжатие для эффективной работы с большими файлами. Если у вас есть какие-либо вопросы или вам нужна дополнительная помощь, не стесняйтесь обращаться через наш форум.