C# 経由で ZIP を tar.gz に変換する
Contents
[
Hide
Show
]Tar.gz は Linux の世界で最も広く普及している圧縮アーカイブ形式ですが、Windows では ZIP が最も人気があります。 ZIP アーカイブを tar.gz に変換したい場合は、この記事をお読みください。
変換
Aspose.ZIP API は、tar アーカイブをオンザフライで圧縮するための SaveGzipped メソッド を提供します。エントリを中間ストレージに保存せずに 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 }