Папки ZIP і UnZIP у .NET

API Aspose.ZIP дозволяє стискати та розпаковувати файли, не турбуючись про базову файлову структуру. У цій статті показано роботу як із стисненням одного, так і кількох файлів.

Стиснення каталогу

Стиснення вмісту каталогу

Кроки: Стисніть вміст каталогу в ZIP-файли за допомогою C#

  1. Визначте каталог, який містить файли, які потрібно стиснути.
  2. Відкрийте два потоки файлів для вихідних файлів ZIP за допомогою FileMode.Create.
  3. Створіть екземпляр класу Архів.
  4. За допомогою методу CreateEntries додайте до архіву всі файли та папки з указаного каталогу.
  5. Збережіть вміст стисненого каталогу в декілька ZIP-файлів за допомогою методу збереження.
 1    // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
 2    string dataDir = RunExamples.GetDataDir_Data();
 3
 4    using (FileStream zipFile = File.Open(dataDir + "CompressDirectory_out.zip", FileMode.Create))
 5    {
 6        using (FileStream zipFile2 = File.Open(dataDir + "CompressDirectory2_out.zip", FileMode.Create))
 7        {
 8            using (Archive archive = new Archive())
 9            {
10                DirectoryInfo corpus = new DirectoryInfo(dataDir + "CanterburyCorpus");
11                archive.CreateEntries(corpus);
12                archive.Save(zipFile);
13                archive.Save(zipFile2);
14            }
15        }
16    }

Видобування архіву стисненого каталогу

Кроки: Розпакуйте архів стисненого каталогу

  1. Відкрийте потік файлу ZIP за допомогою FileMode.Open.
  2. Створіть екземпляр класу Archive, передавши потік файлу ZIP.
  3. Розпакуйте вміст стисненого архіву до вказаного каталогу за допомогою ExtractToDirectory.
1    // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
2    using (FileStream zipFile = File.Open(dataDir + "CompressDirectory_out.zip", FileMode.Open))
3    {
4        using (var archive = new Archive(zipFile))
5        {
6            archive.ExtractToDirectory(dataDir + "DecompressFolder_out");
7        }
8    }

Стиснення файлів за інформацією про файл

Кроки: Стискайте файли за інформацією про файл

  1. Відкрийте потік файлів для вихідного ZIP-файлу за допомогою FileMode.Create.
  2. Створіть об’єкти FileInfo для файлів, які потрібно стиснути.
  3. Створіть екземпляр класу Архів.
  4. Використовуйте метод CreateEntry, щоб додати кожен файл до архіву.
  5. Збережіть архів за допомогою методу збереження з додатковими параметрами збереження, такими як встановлення кодування.
 1    // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
 2    using (FileStream zipFile = File.Open(dataDir + "CompressFilesByFileInfo_out.zip", FileMode.Create))
 3    {
 4        FileInfo fi1 = new FileInfo(dataDir + "alice29.txt");
 5        FileInfo fi2 = new FileInfo(dataDir + "fields.c");
 6
 7        using (var archive = new Archive())
 8        {
 9            archive.CreateEntry("alice29.txt", fi1);
10            archive.CreateEntry("fields.c", fi2);
11            archive.Save(zipFile, new ArchiveSaveOptions() { Encoding = Encoding.ASCII });
12        }
13    }

Видобути архіви з різними архівами записів

Кроки: витягніть архіви з іншим записом Паролі

  1. Відкрийте потік файлу ZIP за допомогою FileMode.Open.
  2. Створіть екземпляр класу Archive, передавши потік файлу ZIP.
  3. Розпакуйте перший запис з архіву, вказавши для цього запису спеціальний пароль за допомогою методу Extract.
  4. Витягніть другий запис із іншим паролем, зберігши його в окремому вихідному файлі.
1    // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
2    using (FileStream zipFile = File.Open(dataDir + "\\different_password.zip", FileMode.Open))
3    {
4        using (Archive archive = new Archive(zipFile))
5        {
6            archive.Entries[0].Extract(dataDir + "alice29_extracted_pass_out.txt", "first_pass");
7            archive.Entries[1].Extract(dataDir + "asyoulik_extracted_pass_out.txt", "second_pass");
8        }
9    }
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.