C# でアーカイブの内容を表示
.NET で ZIP、7Z、RAR、TAR、CPIO、XAR のファイル一覧とメタデータを確認します。
.NET 向けアーカイブビューアー API
Aspose.ZIP for .NET を使うと、C# アプリケーションからアーカイブを開き、すべてを展開せずにエントリを列挙できます。アーカイブブラウザー、アップロード検査、コンテンツ台帳、検証サービス、プレビュー処理で、名前、パス、サイズ、形式固有のメタデータを表示できます。
API は .NET アプリケーション内で動作し、WinRAR や 7-Zip は不要です。共通の流れを確認した後、実際のコンテナー形式に合うガイドを選択してください。
アーカイブを「表示する」とは?
アーカイブのインデックスを読み、内部のファイルやフォルダーに関する情報を提示することです。形式に応じて名前、内部パス、元のサイズ、圧縮サイズ、更新日時などを取得できます。
内部の文書や画像を視覚的にレンダリングする処理ではありません。プレビューには対象エントリを展開またはストリームとして取り出し、適切なビューアーへ渡します。
アーカイブビューアーが役立つ場面
展開する内容を決める前にパッケージを確認したい場合に便利です。アップロードポータル、文書受付、バックアップ台帳、コンプライアンス検査、移行ツールなどで、目的のファイルの検索や命名規則の適用に利用できます。
C# でアーカイブエントリを表示する手順
- ローカルファイルまたは管理対象ストリームを受け取ります。
- 実際のコンテナー形式に合う API クラスを選びます。
- すべてを展開せずにアーカイブを開きます。
- Entries を列挙してメタデータを読み取ります。
- 安全な一覧を表示するか、必要に応じて検証後に展開します。
対応するアーカイブ形式
- ZIP
:
Archiveでアーカイブ項目を列挙します。 - 7Z
:
SevenZipArchiveでアーカイブ項目を列挙します。 - RAR
:
RarArchiveでアーカイブ項目を列挙します。 - TAR
:
TarArchiveでアーカイブ項目を列挙します。 - CPIO
:
CpioArchiveでアーカイブ項目を列挙します。 - XAR
:
XarArchiveでアーカイブ項目を列挙します。
C# の例: ZIP アーカイブ内のファイルを一覧表示
次の例は ZIP のインデックスを読み、展開せずに各エントリ名を出力します:
using Aspose.Zip;
using (var archive = new Archive("input.zip"))
{
foreach (ArchiveEntry entry in archive.Entries)
Console.WriteLine(entry.Name);
}
Aspose.ZIP for .NET のインストール
Aspose.ZIP NuGet パッケージ を C# プロジェクトに追加し、対象形式の名前空間をインポートします。
パッケージ マネージャー コンソール
PM> Install-Package Aspose.Zip
運用環境での注意点
メタデータとエントリ名は信頼できない入力として扱います。サイズ、件数、階層、時間、メモリに上限を設けてください。展開前にパスを正規化し、破損・暗号化された入力を安全に処理し、HTML 用に名前をエスケープします。承認済みの項目だけを展開し、オブジェクトとストリームを確実に破棄してください。
アーカイブの表示と展開の違い
表示はインデックスを読み、検索・選択・検証を行います。展開はデータを解凍して元のファイルを書き出す処理です。抽出した文書の視覚表示には、そのファイル形式に対応したビューアーが必要です。
関連するアーカイブ処理
アーカイブの展開 、 形式の変換 、 パスワード保護されたアーカイブを開く方法 も参照してください。
Aspose.ZIP for .NET のリソース
アーカイブビューアーのよくある質問
1. C# でアーカイブの内容を表示するには?
形式に合う Aspose.ZIP クラスで開き、Entries を列挙して名前とメタデータを読み取ります。
2. どの形式に対応していますか?
ZIP、7Z、RAR、TAR、CPIO、XAR の形式別ガイドがあります。
3. 内部の文書も視覚表示できますか?
いいえ。Aspose.ZIP はエントリを一覧表示・展開します。表示には文書形式に適したビューアーが必要です。
4. 7-Zip や WinRAR は必要ですか?
いいえ。.NET アプリケーション内で直接読み取ります。
5. 保護されたアーカイブも確認できますか?
有効なパスワードと形式別オプションがあれば可能です。不明なパスワードは復元できません。