Злиття архівів TAR.GZ у C#
Якщо ви хочете об’єднати довільну кількість архівів Tar.gz в один архів, прочитайте цю статтю.
Опис
API Aspose.ZIP надає клас TarArchive для видобування та створення архівів Tar зі стисненням або без нього. Ми можемо розпакувати архів у пам’ять, не зберігаючи його у проміжному сховищі, і одразу передати його записи до об’єднаного архіву Tar.
Переконайтеся, що у вас достатньо віртуальної пам’яті, щоб зберегти вміст усіх записів.
Перенести запис
Наступний приклад коду демонструє, як витягти записи з кількох архівів Tar.gz і негайно помістити їх до архіву tar. Ми стискаємо його до gz у пам’яті за допомогою методу SaveGzipped.
1 string[] archivesPaths = new string[] { "data/first.tar.gz",
2 "data/second.tar.gz", "data/third.tar.gz" };
3 TarArchive[] archives = new TarArchive[archivesPaths.Length];
4
5 using (TarArchive mergred = new TarArchive())
6 {
7 for (int i = 0; i < archivesPaths.Length; i++)
8 {
9 TarArchive a = TarArchive.FromGZip(archivesPaths[i]);
10 archives[i] = a;
11 foreach (TarEntry entry in a.Entries)
12 mergred.CreateEntry(entry.Name, entry.Open());
13 }
14
15 mergred.SaveGzipped("merged.tar.gz");
16
17 for (int i = 0; i < archivesPaths.Length; i++)
18 {
19 archives[i].Dispose();
20 }
21 }
Подібний підхід для інших архівів
Ви можете використовувати той самий підхід для об’єднання tar.lz, tar.xz, tar.z.