GZip アーカイブの操作
Contents
[
Hide
Show
]概要
Aspose.ZIP for .NET API を使用すると、他のサードパーティ アプリケーションを必要とせずに、アプリケーションで GZip アーカイブを作成および管理できます。 Aspose.ZIP API は、GZip アーカイブを操作する GZipArchive クラスを提供します。このクラスは、アーカイブに対して操作を実行するためのさまざまなメソッドを提供します。
Gzip 圧縮アルゴリズムは、LZ77 とハフマン コーディングを組み合わせた DEFLATE アルゴリズムに基づいています。
ファイルを圧縮する
次のコード例は、GZipArchive インスタンスを使用してファイルを圧縮する方法を示しています。
1 using (GzipArchive archive = new GzipArchive())
2 {
3 archive.SetSource(dataDir + "data.bin");
4 archive.Save(dataDir + "archive.gz");
5 }
GZIP アーカイブを開く
次のコード例は、 GZip アーカイブ を開く方法を示しています。
1 //Extracts the archive and copies extracted content to file stream.
2 using (var archive = new GzipArchive(dataDir + "archive.gz"))
3 {
4 using (var extracted = File.Create(dataDir + "data.bin"))
5 {
6 var unpacked = archive.Open();
7 byte[] b = new byte[8192];
8 int bytesRead;
9 while (0 < (bytesRead = unpacked.Read(b, 0, b.Length)))
10 extracted.Write(b, 0, bytesRead);
11 }
12 }
メモリ ストリームに抽出
次のコード例は、ストリームからアーカイブを開いて MemoryStream に抽出する方法を示しています。
1 //Open an archive from a stream and extract it to a MemoryStream
2 var ms = new MemoryStream();
3 using (GzipArchive archive = new GzipArchive(File.OpenRead(dataDir + "sample.gz")))
4 {
5 archive.Open().CopyTo(ms);
6 Console.WriteLine(archive.Name);
7 }
ストリームに保存
次のコード例は、ストリームを開いて保存する方法を示しています。
1 //Writes compressed data to http response stream.
2 var ms = new MemoryStream();
3 using (var archive = new GzipArchive())
4 {
5 archive.SetSource(new FileInfo(dataDir + "data.bin"));
6 archive.Save(ms);
7 }