Як стискати або витягувати архіви за допомогою C#

Огляд

У цій статті пояснюється, як стискати або витягувати архіви. Ці архіви можуть мати Zip, 7z, Rar та інші подібні формати. Він охоплює наступні теми.

Формат: ZIP

Формат: ZIP - пароль

Формат: 7z

Формат: RAR

Інші теми, охоплені цією статтею.

C# Стискання або видобування архівів

На цій сторінці показано, як виконувати стандартні операції архівування в C# за допомогою Aspose.ZIP для .NET. Пакет Aspose.ZIP можна додати до проекту .NET за допомогою такої команди NuGet:

1PM> Install-Package Aspose.Zip

Його також можна додати безпосередньо до проекту .NET як посилання на збірку. Бібліотеку Aspose.ZIP можна завантажити з нашої домашньої сторінки: https://products.aspose.com/zip/net/.

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

Як створити ZIP-файли в C#

Кроки: створення файлу Zip у C#

  1. Створіть екземпляр класу Архів.
  2. Додайте файли за допомогою методу Archive.CreateEntry.
  3. Заархівуйте файли за допомогою методу Архівувати.Зберегти.
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}

Конструктор класу архіву створює звичайний 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}

Для створення нового архіву 7z слід використовувати конструктор класу SevenZipArchive. У наведеному вище прикладі використовується класичне стиснення 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.

Як ZIP-файли з паролем у 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}

Параметр encryptionSettings використовується для створення ZIP-архіву, захищеного паролем.

Як розпакувати файли з паролем у C#

Кроки: розпакуйте захищений паролем Zip-файл за допомогою C#

  1. Створіть екземпляр класу Архів.
  2. Передайте йому об’єкт ArchiveLoadOptions і встановіть властивість DecryptionPassword за допомогою password файлу zip.
  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.