Перетворення ZIP у tar.gz за допомогою C#

Tar.gz є найпоширенішим форматом стисненого архіву в світі Linux, тоді як ZIP є найпопулярнішим для Windows. Якщо ви хочете конвертувати ZIP-архів у tar.gz, прочитайте цю статтю.

Конвертація

Aspose.ZIP API надає  метод SaveGzipped для стиснення архіву tar на льоту. Ми можемо розпакувати запис із ZIP-архіву в пам’ять, не зберігаючи його в проміжному сховищі, і відразу передати в архів tar.

Переконайтеся, що у вас достатньо віртуальної пам’яті, щоб зберегти вміст усіх записів.

Перенести запис

У наведеному нижче прикладі коду показано, як отримати записи з архіву ZIP і негайно помістити їх до архіву tar.gz. Записи, які є каталогами, пропускаються, але їхні файли додаються з урахуванням відносних шляхів.

 1    using (Archive source = new Archive("source.zip"))
 2    {
 3        using (TarArchive tar = new TarArchive())
 4        {
 5            foreach (ArchiveEntry entry in source.Entries)
 6            {
 7                if (!entry.IsDirectory)
 8                {
 9                    MemoryStream mem = new MemoryStream();
10                    entry.Open().CopyTo(mem);                
11                    tar.CreateEntry(entry.Name, mem);
12                }
13            }
14
15            tar.SaveGzipped("result.tar.gz");
16        }
17    }
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.