Объединение ZIP-архивов в C#
Contents
[
Hide
Show
]Если вы хотите объединить произвольное количество ZIP-архивов в один архив, прочтите эту статью.
Описание
Aspose.ZIP API предоставляет класс Archive для извлечения и составления ZIP-архивов. Мы можем извлечь запись в память, не сохраняя ее в промежуточном хранилище, и сразу передать в ZIP-архив.
Убедитесь, что у вас достаточно виртуальной памяти для хранения содержимого всех записей.
Перенос записи
В следующем примере кода показано, как извлечь записи из нескольких ZIP-архивов и сразу же поместить их в ZIP-архив.
1 string[] archivesPaths = new string[] { "data/first.zip", "data/second.zip" };
2 Archive[] archives = new Archive[archivesPaths.Length];
3 using (var merged = new Archive())
4 {
5 for (int i = 0; i < archivesPaths.Length; i++)
6 {
7 Archive a = new Archive(archivesPaths[i]);
8 archives[i] = a;
9 foreach (ArchiveEntry entry in a.Entries)
10 merged.CreateEntry(entry.Name, entry.Open());
11 }
12
13 merged.Save("merged.zip");
14
15 for (int i = 0; i < archivesPaths.Length; i++)
16 {
17 archives[i].Dispose();
18 }
19 }