C# での ZIP アーカイブのマージ
Contents
[
Hide
Show
]任意の数の ZIP アーカイブを 1 つのアーカイブに結合したい場合は、この記事をお読みください。
説明
Aspose.ZIP API は、ZIP アーカイブを抽出して作成するための Archive クラスを提供します。 エントリを中間ストレージに保存せずにメモリに抽出し、すぐに 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 }