C#でGZipを作成する

GZipアーカイブ(.gz)は、GNUzip圧縮アルゴリズムを使用して1つ以上のファイルを圧縮するために使用されます。これは、UNIXオペレーティングシステムでのファイル圧縮に一般的に使用されます。この記事では、C#でプログラムでGZip(.gz)を使用してファイルを圧縮する方法を学習します。さらに、この記事では、C#でGZipアーカイブを解凍する方法についても説明します。

GZipを使用してファイルを圧縮および解凍するC#API

GZipを使用してファイルを圧縮および解凍するには、Aspose.ZIP for.NETを使用します。これは、ZIP7z、GZipなどの一般的なアーカイブ形式で作業できる強力なAPIです。APIをダウンロードするか、[NuGet]を使用してインストールできます。 8

PM> Install-Package Aspose.Zip

C#でGZipを使用してファイルを圧縮する

以下は、C#で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アーカイブをメモリストリームオブジェクトに抽出することもできます。この操作を実行する手順は次のとおりです。

次のコードサンプルは、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の詳細を調べることができます。さらに、フォーラムを介して、質問を共有するために私たちに連絡することができます。

関連項目