GZipアーカイブ(.gz)は、GNUzip圧縮アルゴリズムを使用して1つ以上のファイルを圧縮するために使用されます。これは、UNIXオペレーティングシステムでのファイル圧縮に一般的に使用されます。この記事では、C#でプログラムでGZip(.gz)を使用してファイルを圧縮する方法を学習します。さらに、この記事では、C#でGZipアーカイブを解凍する方法についても説明します。
GZipを使用してファイルを圧縮および解凍するC#API
GZipを使用してファイルを圧縮および解凍するには、Aspose.ZIP for.NETを使用します。これは、ZIP、7z、GZipなどの一般的なアーカイブ形式で作業できる強力なAPIです。APIをダウンロードするか、[NuGet]を使用してインストールできます。 8。
PM> Install-Package Aspose.Zip
C#でGZipを使用してファイルを圧縮する
以下は、C#でGZipを使用してファイルを圧縮する手順です。
- GzipArchiveクラスのオブジェクトを作成します。
- GzipArchive.SetSource(String)メソッドを使用して、アーカイブするファイルを追加します。
- GzipArchive.Save(String)メソッドを使用してGZipアーカイブを作成します。
次のコードサンプルは、C#でファイルをGZipに圧縮する方法を示しています。
using (GzipArchive archive = new GzipArchive())
{
// ソースを設定
archive.SetSource("data.bin");
// アーカイブを作成する
archive.Save("archive.gz");
}
C#でGZipアーカイブを解凍します
以下は、Aspose.ZIP for .NETを使用してC#でGZipアーカイブを解凍する手順です。
- GzipArchiveクラスのオブジェクトを作成し、GZipアーカイブのパスで初期化します。
- File.Create(String)メソッドを使用して、抽出されたコンテンツのファイルを作成します。
- GZipArchive.Open()メソッドを使用して抽出するためにGZipを開きます。
- 抽出したコンテンツを読み取り、ファイルに書き込みます。
次のコードサンプルは、C#を使用してGZipアーカイブを解凍する方法を示しています。
// GZipアーカイブをロードする
using (var archive = new GzipArchive("archive.gz"))
{
// ファイルを作成する
using (var extracted = File.Create("data.bin"))
{
// アーカイブを開く
var unpacked = archive.Open();
byte[] b = new byte[8192];
int bytesRead;
// ファイルに書き込む
while (0 < (bytesRead = unpacked.Read(b, 0, b.Length)))
extracted.Write(b, 0, bytesRead);
}
}
GZipアーカイブをC#のストリームに抽出します
GZipアーカイブをメモリストリームオブジェクトに抽出することもできます。この操作を実行する手順は次のとおりです。
- 新しいMemoryStreamオブジェクトを作成します。
- GzipArchiveクラスのオブジェクトを作成し、GZipアーカイブのパスで初期化します。
- GZipArchive.Open().CopyTo(MemoryStream)メソッドを使用して、GZipを抽出し、メモリストリームにコピーします。
次のコードサンプルは、C#を使用してGZipアーカイブをメモリストリームに抽出する方法を示しています。
// メモリストリームを作成する
var ms = new MemoryStream();
// GZipアーカイブをロードする
using (GzipArchive archive = new GzipArchive(File.OpenRead("sample.gz")))
{
// 抽出してメモリストリームにコピーする
archive.Open().CopyTo(ms);
Console.WriteLine(archive.Name);
}
無料のAPIライセンスを取得する
評価の制限なしにAPIを使用するために、無料の一時ライセンスを取得できます。
結論
この記事では、C#でGZipを使用してファイルを圧縮または解凍する方法を学習しました。さらに、GZipを抽出してプログラムでストリーミングする方法を見てきました。 ドキュメントを使用して、Aspose.ZIPfor.NETの詳細を調べることができます。さらに、フォーラムを介して、質問を共有するために私たちに連絡することができます。