ZIP から 7z への C#

このブログ記事では、C# を使用して ZIP アーカイブを 7z 形式に変換するプロセスについて説明します。7z 形式は圧縮率が高いことで知られており、ファイル サイズを縮小するために広く使用されているため、効率的な保存と転送に最適です。ステップ バイ ステップのアプローチを使用して変換を実装する方法を説明します。

ZIP を 7z に変換する理由

ZIP ファイルを 7z に変換する理由はいくつかあります。

  • ファイル サイズの縮小: 7z 形式は ZIP に比べて優れた圧縮率を実現します。

  • パフォーマンスの向上: ファイル サイズが小さくなると、アップロード、ダウンロード、転送が高速化されます。

  • より高い圧縮率: 7z 形式はファイルをより効率的に圧縮し、ファイル サイズを縮小してストレージを最適化します。

ZIP から 7z アーカイブへのコンバーター - C# API 構成

ZIP アーカイブを 7z 形式に変換するには、Microsoft Visual Studio IDE で次の NuGet インストール コマンドを使用して Conholdate.Total for .NET をインストールする必要があります。

PM> NuGet\Install-Package Conholdate.Total

C# で ZIP を 7z に変換する

C# で ZIP を 7z に変換するには、以下の手順に従います。

  • Archive: 変換する ZIP ファイルを表します。Archive クラスは、ZIP ファイルを開いて読み取るために使用されます。

  • SevenZipArchive: このクラスは、7z アーカイブを作成して保存するために使用されます。

  • SevenZipEntrySettings: 7z 形式の圧縮設定を指定します。この場合、圧縮効率を最大化するために LZMA2 圧縮アルゴリズムを使用しています。

  • MemoryStream: ファイル データはストリームを使用してメモリにコピーされ、ZIP ファイルの各エントリが新しい 7z アーカイブに追加されます。

以下のサンプル コードは、C# で ZIP を 7z に変換する方法を示しています。

using (Archive source = new Archive("source.zip"))
{
    using (var archive = new Aspose.Zip.SevenZip.SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings())))
    {
        foreach (ArchiveEntry entry in source.Entries)
        {
            if (!entry.IsDirectory)
            {
                MemoryStream mem = new MemoryStream();
                entry.Open().CopyTo(mem);
                mem.Seek(0, SeekOrigin.Begin);
                archive.CreateEntry(entry.Name, mem);
            }
        }
        archive.Save("result.7z");
    }
}

無料評価ライセンス

無料の一時ライセンスを取得して、さまざまなアーカイブ変換や操作を自分の側で評価することができます。

結論

上記の手順に従うと、C# で ZIP ファイルを 7z 形式に簡単に変換できます。7z 形式は圧縮効率が高いため、ファイル サイズを縮小するのに最適で、大きなアーカイブを処理する際のパフォーマンスが向上します。不明な点がある場合は、フォーラム でお問い合わせください。

よくある質問

7z アーカイブをパスワードで保護できますか?

はい、7z 形式は高度な暗号化をサポートしており、パスワードを使用してアーカイブを保護できます。

1 回の操作で複数の ZIP ファイルを 7z に変換できますか?

はい、複数の ZIP ファイルをループして、同じロジックを適用して変換することができます。

マシンに 7-Zip ソフトウェアをインストールする必要がありますか?

いいえ、Conholdate.Total for .NET には、追加のソフトウェアなしで 7z を操作するために必要なすべてのコンポーネントが含まれています。

参照