Создание архива 7Zip в C#

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

В этом руководстве вы узнаете, как создавать архивы 7z (7-Zip) программно с использованием C#. Мы рассмотрим:

Все примеры и фрагменты кода основаны на API Aspose.ZIP для .NET. Убедитесь, что у вас установлен API, используя один из следующих методов:

Создание архива 7z (7-Zip) с использованием C#

Вы можете сжимать файлы в архив 7z в двух основных сценариях: при работе с одним файлом или несколькими файлами. Вот как справиться с обеими ситуациями.

Создание архива 7z с одной записью

Чтобы создать архив 7z с одним файлом, выполните следующие шаги:

  1. Откройте новый FileStream для создания файла 7z.
  2. Создайте экземпляр класса SevenZipArchive.
  3. Добавьте файл в архив с помощью метода SevenZipArchive.CreateEntry(String, String, Boolean, SevenZipEntrySettings).
  4. Сохраните архив с помощью метода SevenZipArchive.Save(Stream).

Вот пример архива 7z на C#, демонстрирующий вышеуказанные шаги:

Создание архива 7z с несколькими записями

Если вам нужно сжать несколько файлов, вы можете поместить их в папку и передать путь к папке в метод SevenZipArchive.CreateEntries(). Выполните следующие шаги:

  1. Создайте экземпляр класса SevenZipArchive.
  2. Передайте путь к папке в метод SevenZipArchive.CreateEntries(String, Boolean).
  3. Вызовите метод SevenZipArchive.Save(String).

Вот как создать архив 7z с несколькими записями с использованием C#:

Создание зашифрованного архива 7z с помощью AES с использованием C#

Формат 7z поддерживает AES-шифрование для повышения безопасности. Чтобы зашифровать файл 7z, используйте класс SevenZipAESEncryptionSettings. Ниже приведен пример кода, демонстрирующий, как создать зашифрованный архив 7z с использованием C#:

Установка различных паролей для записей 7z с использованием C#

Формат 7z также позволяет назначать уникальный пароль для каждой записи файла. Если вы сжимаете несколько файлов, вы можете указать разные пароли для каждого. Вот как это сделать:

  1. Создайте новый FileStream для файла архива 7z.
  2. Получите доступ к каждой записи файла с помощью класса FileInfo.
  3. Создайте экземпляр класса SevenZipArchive.
  4. Добавьте записи в архив 7z с помощью метода SevenZipArchive.CreateEntry(String, FileInfo, Boolean, SevenZipEntrySettings).
  5. Сохраните архив с помощью метода SevenZipArchive.Save(Stream).

Посмотрите следующий пример кода, чтобы увидеть, как установить разные пароли для каждой записи в архиве 7z:

Заключение

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

Связанные статьи

Используя плагин Aspose для .NET, вы можете легко интегрировать сжатие .NET 7-Zip в свои приложения, оптимизировать процессы управления файлами и улучшить возможности вашего программного обеспечения. Всего за 99 долларов вы можете разблокировать мощные функции, поддерживающие работу с большими файлами, асинхронное сжатие и многое другое.