JavaでGroupDocs.Metadataを使用してRARメタデータを読む方法
JavaでRARメタデータを読む必要がある場合、迅速かつ信頼性が高く、アーカイブ全体をメモリに読み込むことなく実行できるチュートリアルです。このガイドでは、GroupDocs.Metadata for Java がヘッダー情報を読み取り、パスワード保護されたアーカイブを処理し、マルチギガバイトファイルにスケールする方法を紹介します。コードはクリーンで保守しやすい状態を保ちます。
クイック回答
- What library handles RAR metadata in Java? GroupDocs.Metadata for Java.
- Do I need a license to run the examples? A temporary evaluation license works for testing; a full license is required for production deployments.
- Which Java versions are supported? Java 8 through 17 (LTS) are fully compatible.
- Can I read password‑protected RAR files? Yes—simply provide the password when constructing the archive object.
- Is there a performance impact on large archives? Extraction is streamed, so memory usage stays low even for gigabyte‑size files.
RARの読み取りとは何か?
How to read RAR は、RAR アーカイブ内に保存された記述情報(ファイル名、サイズ、タイムスタンプ、コメント、カスタムプロパティ)を、アーカイブ内容を解凍せずにプログラムで取得することを意味します。この操作はインデックス作成、検索、監査トレイル生成に不可欠です。抽出されたデータはインデックス化したり、UI コンポーネントに表示したり、フル抽出のオーバーヘッドなしでコンプライアンスレポートに利用できます。
なぜ Java 用 GroupDocs.Metadata で RAR メタデータを読むのか?
ヘッダーから直接メタデータを読み取ることで、各ファイルを解凍するコストを回避でき、処理時間とメモリ消費が大幅に削減されます。このアプローチは、必要な情報だけにアクセスできるため、パフォーマンスとリソース効率が重要な大規模インデックス作成や監査シナリオに最適です。
GroupDocs.Metadata はアーカイブヘッダーを直接処理し、次の 3 つの定量的な利点を提供します:
- Speed: Reads metadata from up to 50 + archive formats in under 200 ms for a 500‑entry RAR file on a typical server.
- Memory efficiency: Uses a streaming architecture that never loads more than 4 MB of the archive into RAM, regardless of total file size.
- Reliability: Handles corrupted or password‑protected archives with built‑in exceptions, reducing crash rates by > 95 % compared with manual parsing.
GroupDocs.Metadata for Java を使用してパスワード保護された RAR ファイルを読む方法
パスワードを指定して Archive オブジェクトを作成し、エントリを列挙してファイル名、サイズ、作成時間などのメタデータを取得します。API はストリームで動作するため、アーカイブ全体をメモリに展開する必要がなく、大容量かつパスワード保護されたファイルでも高速に処理できます。
前提条件
- Java Development Kit (JDK) 8 以上がインストールされていること。
- Maven または Gradle による依存関係管理。
- 有効な GroupDocs.Metadata for Java ライセンス(テスト用の一時ライセンス可)。
- 実験用のサンプル RAR ファイル(任意のアーカイブツールで作成可能)。
Java で RAR メタデータを読むステップバイステップガイド
抽出プロセスはどのように機能しますか?
抽出プロセスは 3 つのシンプルな手順で構成されます:アーカイブを開く、エントリを列挙する、各エントリのメタデータプロパティを読む。Archive インスタンスを作成し、必要に応じてパスワードを渡し、getEntries() で ArchiveEntry コレクションを取得し、getFileName()、getSize()、getCreationTime() などのプロパティを読み取ります。特定の RAR バージョンに存在しないプロパティは null が返るため、使用前に必ず null チェックを行ってください。
関連するクラスとメソッドはどれですか?
Archive クラスはディスク上またはストリーム上の RAR ファイルを表すエントリポイントです。ArchiveEntry はアーカイブ内の単一ファイルを表し、メタデータ取得用の getter を提供します。ArchiveOptions はストリーミングバッファやエラーハンドリングの動作を細かく調整できます。これらを組み合わせることで、低オーバーヘッドかつスレッドセーフな API が実現します。
大容量アーカイブを効率的に処理するには?
エントリをリストにロードせず、ストリームループで順次処理します。ライブラリは必要に応じてエントリヘッダーをオンデマンドで読み込むため、アーカイブサイズに関係なくメモリ使用量は一定です。マルチギガバイト規模のアーカイブの場合は ArchiveOptions.setBufferSize()(例:8 MB)で内部バッファを拡大し、マルチコア CPU 上で独立バッチを並列処理してスループットを向上させます。
パスワード保護された RAR ファイルを読むには?
パスワード文字列を Archive コンストラクタに渡します:new Archive("file.rar", "myPassword")。ライブラリはヘッダーをオンザフライで復号し、非保護アーカイブと同様に動作します。パスワードが誤っている場合は InvalidPasswordException がスローされ、これをキャッチしてユーザーに通知できます。
ファイルを抽出せずにメタデータだけを読むには?
API はアーカイブのセントラルディレクトリのみを読み取ります。ファイルデータは展開されないため、名前、サイズ、タイムスタンプ、コメントを即座に取得できます。これにより、アーカイブ内容の検索インデックス構築や監査ログ生成といったシナリオに最適です。
よくある問題と解決策
| 問題 | 推奨される修正 |
|---|---|
| Corrupted archive exception | CorruptedArchiveException をキャッチし、ファイル名をログに記録し、必要に応じて次のエントリへスキップします。 |
| Incorrect password | パスワード文字列を確認し、Archive コンストラクタに渡されていることを確認し、InvalidPasswordException を処理します。 |
| Large archive slows down | エントリをストリーム方式で処理し、アーカイブ全体をメモリに読み込まないようにします。 |
| Missing metadata fields | すべてのRARバージョンがすべてのプロパティを保持しているわけではないため、フィールドを使用する前に必ず null かどうか確認してください。 |
Frequently asked questions
Q: 暗号化されたRARアーカイブからメタデータを抽出できますか?
A: はい。パスワードを Archive コンストラクタに渡すと、GroupDocs.Metadata がヘッダーを復号し、メタデータを返します。
Q: RARアーカイブ内のファイル数に制限はありますか?
A: ハードな制限はありません。ライブラリはエントリを順次処理するため、数千ファイルのアーカイブでも効率的に処理できます。
Q: メタデータを読むためにアーカイブを展開する必要がありますか?
A: いいえ。メタデータはアーカイブ構造から直接読み取られるため、処理が高速でメモリ使用量も低く抑えられます。
Q: 破損したアーカイブはどう処理しますか?
A: GroupDocs.Metadata は特定の CorruptedArchiveException をスローします。この例外をキャッチして問題をログに記録するか、問題のあるファイルをスキップしてください。
Q: RARアーカイブのメタデータを書き換えたり変更したりできますか?
A: 現在のバージョンではコメントの読み取りと削除はサポートしていますが、RARファイルに新しいメタデータを書き込むことはできません。書き戻しが必要な場合は、展開して変更し、再度アーカイブを作成してください。
Q: パスワード保護されたRARファイルが開けない場合はどうすればよいですか?
A: パスワードが正しいことを確認し、アーカイブがサポート外の暗号化方式を使用していないか確認し、InvalidPasswordException をキャッチしてユーザーに分かりやすいエラーメッセージを提供してください。
Q: ライブラリは同時メタデータ抽出に対してスレッドセーフですか?
A: はい。各スレッドが独自の Archive インスタンスを使用すれば、Archive のインスタンスは複数スレッドで安全に使用できます。
Available tutorials
- Java向けGroupDocs.MetadataでRARメタデータを効率的に抽出する
- JavaでGroupDocs.Metadataを使用してZIPファイルからメタデータを抽出する:ステップバイステップガイド
- Java向けGroupDocs.MetadataでTARメタデータを抽出する:ステップバイステップガイド
- JavaでGroupDocs.Metadataを使用してSevenZipアーカイブメタデータを読む方法
- JavaでGroupDocs.Metadataを使用してZIPアーカイブからユーザーコメントを削除する方法
- Java向けGroupDocs.MetadataでZIPアーカイブコメントを更新する方法
Additional resources
- Java向けGroupDocs.Metadataドキュメント
- Java向けGroupDocs.Metadata APIリファレンス
- Java向けGroupDocs.Metadataのダウンロード
- GroupDocs.Metadataフォーラム
- 無料サポート
- 一時ライセンス
最終更新日: 2026-10-17
テスト環境: GroupDocs.Metadata 23.11 for Java
作者: GroupDocs