Злиття архівів 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.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.