Папки ZIP і UnZIP у .NET
Contents
[
Hide
Show
]API Aspose.ZIP дозволяє стискати та розпаковувати файли, не турбуючись про базову файлову структуру. У цій статті показано роботу як із стисненням одного, так і кількох файлів.
Стиснення каталогу
Стиснення вмісту каталогу
Кроки: Стисніть вміст каталогу в ZIP-файли за допомогою C#
- Визначте каталог, який містить файли, які потрібно стиснути.
- Відкрийте два потоки файлів для вихідних файлів ZIP за допомогою FileMode.Create.
- Створіть екземпляр класу Архів.
- За допомогою методу CreateEntries додайте до архіву всі файли та папки з указаного каталогу.
- Збережіть вміст стисненого каталогу в декілька 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 }
Видобування архіву стисненого каталогу
Кроки: Розпакуйте архів стисненого каталогу
- Відкрийте потік файлу ZIP за допомогою FileMode.Open.
- Створіть екземпляр класу Archive, передавши потік файлу ZIP.
- Розпакуйте вміст стисненого архіву до вказаного каталогу за допомогою 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 }
Стиснення файлів за інформацією про файл
Кроки: Стискайте файли за інформацією про файл
- Відкрийте потік файлів для вихідного ZIP-файлу за допомогою FileMode.Create.
- Створіть об’єкти FileInfo для файлів, які потрібно стиснути.
- Створіть екземпляр класу Архів.
- Використовуйте метод CreateEntry, щоб додати кожен файл до архіву.
- Збережіть архів за допомогою методу збереження з додатковими параметрами збереження, такими як встановлення кодування.
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 }
Видобути архіви з різними архівами записів
Кроки: витягніть архіви з іншим записом Паролі
- Відкрийте потік файлу ZIP за допомогою FileMode.Open.
- Створіть екземпляр класу Archive, передавши потік файлу ZIP.
- Розпакуйте перший запис з архіву, вказавши для цього запису спеціальний пароль за допомогою методу Extract.
- Витягніть другий запис із іншим паролем, зберігши його в окремому вихідному файлі.
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 }