ZIP から TGZ への C#

このブログ記事では、C# を使用して ZIP ファイルを TGZ(tar.gz) 形式に変換する方法について説明します。ZIP から TGZ への変換は、特に Unix 系システムの圧縮ファイルを扱う場合によく行われる作業です。次のチュートリアルには、開始するためのステップバイステップの説明と必要なコードが含まれています。

ZIP を TGZ に変換する理由

次のようなさまざまな理由により、ZIP を TGZ 形式に変換する必要がある場合があります。

  • クロスプラットフォームの互換性: TGZ ファイルは Unix ベースのシステム (Linux、macOS) でよく使用されますが、ZIP ファイルは Windows でよく使用されます。ZIP を TGZ に変換すると、異なる環境で圧縮ファイルを扱いやすくなります。

  • 圧縮の利点: TGZ ファイルは一般に ZIP に比べて圧縮率が高く、ストレージ スペースを節約し、転送時間を短縮します。

  • タスクの自動化: C# では、ファイル形式の変換を自動化することで、特に大量のデータを扱うアプリケーションで時間と労力を節約できます。

ZIP から TGZ へのコンバーター - C# API 構成

Visual Studio IDE で次の NuGet コマンドを実行して Conholdate.Total for .NET をインストールすると、ZIP を TGZ に変換できます。

PM> NuGet\Install-Package Conholdate.Total

C# で ZIP を TGZ に変換する

次の手順は、C# で ZIP を TGZ に変換する方法を示しています。

  • ZIP ファイルの読み込み: Archive クラスは、TGZ 形式に変換するエントリを含むソース ZIP ファイルを読み込みます。

  • TarArchive の作成: TGZ ファイルのコンテンツの準備を開始するために、TarArchive オブジェクトを作成します。

  • エントリの処理: ZIP ファイル内の各エントリが反復処理されます。ディレクトリでない場合は、そのデータを MemoryStream に抽出します。

  • TarArchive へのエントリの追加: 有効なエントリごとに、CreateEntry メソッドを使用して、メモリに保存されているデータとともにファイルを tarball に追加します。

  • TGZ として保存: SaveGzipped メソッドが呼び出され、tarball が圧縮されて .tar.gz ファイルとして保存されます。

次のコード スニペットは、C# での ZIP から TGZ への変換を示しています。

using (Archive source = new Archive("source.zip"))
{
    using (Aspose.Zip.Tar.TarArchive tar = new Aspose.Zip.Tar.TarArchive())
    {
        foreach (ArchiveEntry entry in source.Entries)
        {
            if (!entry.IsDirectory)
            {
                MemoryStream mem = new MemoryStream();
                entry.Open().CopyTo(mem);
                tar.CreateEntry(entry.Name, mem);
            }
        }

        tar.SaveGzipped("result.tar.gz");
    }
}

無料評価ライセンス

無料の一時ライセンスをリクエストして、評価制限なしで自分の環境で ZIP 変換をテストすることができます。

結論

C# で ZIP を TGZ に変換するのは、圧縮アーカイブを処理するための簡単なプロセスです。クロスプラットフォームのファイル共有やファイル サイズの最適化を扱う場合でも、この変換プロセスは非常に有益です。提供されているコード例に従うことで、.NET アプリケーションで ZIP から TGZ への変換を自動化し、圧縮ファイルの管理における互換性と効率性を確保できます。ご質問がある場合は、フォーラム までお寄せください。

よくある質問

TGZ 形式は Windows でサポートされていますか?

はい、Unix ベースのシステムではより一般的ですが、TGZ ファイルは Windows でも抽出および作成できます。

TGZ アーカイブにディレクトリを含めることができますか?

はい、!entry.IsDirectory チェックを削除し、それに応じてディレクトリを処理することで、ディレクトリを含めるようにコードを変更できます。

ZIP から TGZ への変換を自動化することは可能ですか?

はい、提供されたコードはより大きな C# アプリケーションに統合でき、バッチまたはスケジュールされたタスクでの自動変換が可能になります。

参照