Как сжать или извлечь архивы с помощью C#

Обзор

В этой статье объясняется, как сжимать или извлекать архивы. Это могут быть архивы Zip, 7z, Rar и других подобных форматов. Он охватывает следующие темы.

Формат: ZIP

Формат: ZIP – Пароль

Формат: 7z

Формат: RAR

Другие темы, затронутые в этой статье.

C# Сжатие или извлечение архивов

На этой странице показано, как выполнять стандартные операции с архивами на C# с помощью Aspose.ZIP for .NET. Пакет Aspose.ZIP можно добавить в проект .NET с помощью следующей команды NuGet:

1PM> Install-Package Aspose.Zip

Его также можно добавить непосредственно в проект .NET в качестве ссылки на сборку. Библиотеку Aspose.ZIP можно загрузить с нашей домашней страницы: https://products.aspose.com/zip/net/.

Библиотеку Aspose.ZIP .NET можно использовать в любой ОС, поддерживающей .NET Core (например, Windows, Linux или macOS).

Как создать ZIP-файлы в C#

Шаги: создание Zip-файла на C#

  1. Создайте экземпляр класса Архив.
  2. Добавьте файлы с помощью метода Archive.CreateEntry.
  3. Заархивируйте файлы методом Archive.Save.
1using (var archive = new Archive())
2{
3   archive.CreateEntry("entry_name1.dat", "input_file1.dat");
4   archive.CreateEntry("entry_name2.dat", "input_file2.dat");
5   archive.Save("result_archive.zip");
6}

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

Как разархивировать файлы на C#

Шаги: разархивируйте файл в папку на C#

  1. Создайте экземпляр класса Архив с вашим zip-файлом.
  2. Разархивируйте zip-файл с помощью метода Archive.ExtractToDirectory в свою папку.
1using (var archive = new Archive("input_archive.zip"))
2{
3   archive.ExtractToDirectory("\\outputDirectory");
4}

Конструктор класса архива может открыть любой ZIP-архив. ArchiveLoadOptions следует указать в качестве второго параметра, если входной архив защищен паролем (см. пример ниже).

Как сжать файлы 7z в C#

Шаги: создание архивов 7z на C#

  1. Создайте экземпляр класса SevenZipArchive с помощью SevenZipLZMACompressionSettings.
  2. Добавьте файлы, вызвав метод SevenZipArchive.CreateEntries.
  3. Сохраните его в формате 7z, вызвав метод SevenZipArchive.Save.
1using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMACompressionSettings())))
2{
3	archive.CreateEntries(CommonConstants.TestFilesFolder + "ManyFilesToCompress");
4	archive.Save(CommonConstants.TestOutFolder + "7Z_ManyFilesToCompress.7z");
5}

Конструктор класса SevenZipArchive следует использовать для создания нового архива 7z. В приведенном выше примере используется классическое сжатие LZMA, но также доступны другие варианты сжатия и шифрования.

Как извлечь файлы 7z в C#

Шаги: извлеките файл 7z на C#

  1. Создайте экземпляр класса SevenZipArchive с вашим файлом 7z.
  2. Извлеките содержимое файла 7z, вызвав метод SevenZipArchive.ExtractToDirectory.
1using (var archive = new SevenZipArchive("input_archive.7z"))
2{
3	archive.ExtractToDirectory("\\outputDirectory");
4}

В приведенном выше примере конструктор класса SevenZipArchive открывает незащищенный архив 7z.

Как извлечь файлы RAR в C#

Шаги: извлеките файл RAR на C#

  1. Создайте экземпляр класса RarArchive с вашим RAR-файлом.
  2. Извлеките содержимое файла RAR, вызвав метод RarArchive.ExtractToDirectory.
1using (var archive = new RarArchive("input_archive.rar"))
2{
3	archive.ExtractToDirectory("\\outputDirectory");
4}

В приведенном выше примере конструктор класса RarArchive открывает незащищенный архив RAR.

Как заархивировать файлы с паролем на C#

Шаги: создайте Zip-файл с паролем на C#< /а>

  1. Создайте экземпляр класса Архив.
  2. Передайте ему ArchiveEntrySettings и установите свойство encryptionSettings с объектом TraditionalEncryptionSettings, имеющим ваш пароль.
  3. Добавьте как можно больше файлов, вызвав метод Archive.CreateEntry несколько раз.
  4. Сохраните его как Zip-файл, используя метод Archive.Save.
1using (var archive = new Archive(new ArchiveEntrySettings(encryptionSettings: new TraditionalEncryptionSettings("pass"))))
2{
3   archive.CreateEntry("entry_name1.dat", "input_file1.dat");
4   archive.CreateEntry("entry_name2.dat", "input_file2.dat");
5   archive.Save("result_archive.zip");
6}

Параметр шифрованияSettings используется для создания ZIP-архива, защищенного паролем.

Как распаковать файлы с паролем на C#

Шаги: разархивируйте ZIP-файл, защищенный паролем, с помощью C#< /а>

  1. Создайте экземпляр класса Архив.
  2. Передайте ему объект ArchiveLoadOptions и установите свойство DecryptionPassword с вашим zip-файлом password.
  3. Разархивируйте zip-файл с помощью метода Archive.ExtractToDirectory в свою папку.
1using (var archive = new Archive("input_archive.zip", new ArchiveLoadOptions{DecryptionPassword = "pass"}))
2{
3   archive.ExtractToDirectory("\\outputDirectory");
4}

ArchiveLoadOptions со значением свойства DecryptionPassword используется для открытия ZIP-архива, защищенного паролем.

См. также

В этой статье также рассматриваются эти темы. Коды такие же, как указано выше.

Формат: ZIP

Формат: 7z

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.