Объединение ZIP-архивов в C#

Если вы хотите объединить произвольное количество 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    }

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.