Перетворення ZIP у tar.gz за допомогою C#
Contents
[
Hide
Show
]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 }