
ZIPファイルを扱う際、親ZIPアーカイブ内に複数のZIPアーカイブがネストされていることがよくあります。これらのネストされたアーカイブの内容にアクセスするには、まず親ZIPを抽出し、その後各ネストされたアーカイブを個別に処理する必要があります。この記事では、C# .NETでネストされたZIPアーカイブを効率的に抽出する方法を説明しますが、複雑なコードを書く必要はありません。
目次
ネストされたZIPアーカイブの抽出に.NET APIを使用する
ネストされたZIPアーカイブを抽出するために、Aspose.ZIP for .NETライブラリを利用します。この強力なAPIは、.NETアプリケーション内でのアーカイブ操作のために特別に設計されており、さまざまなアーカイブ形式を簡単に作成および操作できます。APIのDLLをダウンロードするか、次のコマンドを使用してNuGetから直接インストールできます。
PM> Install-Package Aspose.Zip
ネストされたZIPアーカイブの解凍手順
デモ用に、ネストされたZIPアーカイブを含む3つのエントリを持つZIPファイルを用意しました。

ネストされたZIPアーカイブ
各ネストされたZIPアーカイブを抽出し、その内容を別々のフォルダーに保存します。以下は、.NETでネストされたZIPファイルを処理する手順です。
- FileStreamを作成: FileStreamオブジェクトを使用して親ZIPファイルを読み込みます。
- ZIPファイルを読み込む: Archiveクラスを利用してZIPファイルを読み込みます。
- アーカイブエントリを反復処理: Archive.Entriesコレクション内の各ArchiveEntryをループします。
- ネストされたZIPアーカイブをフィルタ: コレクション内のZIPアーカイブを特定し、各アーカイブに対して以下を実行します:
- MemoryStreamを作成: MemoryStreamをインスタンス化し、ArchiveEntry.Open().CopyTo(Stream)メソッドを使用してアーカイブエントリをコピーします。
- ネストされたアーカイブを読み込む: MemoryStreamからネストされたアーカイブを読み込むためにArchiveクラスのインスタンスを作成します。
- ディレクトリに抽出: 最後に、Archive.ExtractToDirectory(string)メソッドを使用してネストされたアーカイブの内容を指定されたフォルダーに抽出します。
以下は、C# .NETでネストされたZIPアーカイブを解凍する方法を示すコードサンプルです:
以下のスクリーンショットは、ネストされたZIPアーカイブから抽出された内容を示しています:

解凍されたネストされたアーカイブ
無料APIライセンスを取得
Aspose.ZIP for .NETの無料の一時ライセンスを取得することで、評価制限なしにライブラリを使用できます。
結論
この記事では、C#でネストされたZIPファイルを解凍する最良の方法を学びました。提供されたステップバイステップのガイドとコードサンプルは、.NETフレームワークを使用してネストされたZIPアーカイブを効率的に処理する方法を示しています。機能のさらなる探求については、Aspose.ZIPのドキュメントを訪問するか、フォーラムで質問してください。