# Archive Inspector

> ZIP・tar.gz・gzip・7z・RARを展開せずにブラウザで確認：サイズと圧縮率つきファイルツリー、安全な単体プレビュー、パストラバーサル警告。

- URL: https://bytescope.dev/ja/archive-inspector/
- Locale: ja · Also: [en](https://bytescope.dev/en/archive-inspector.md) · [zh-Hant](https://bytescope.dev/zh-Hant/archive-inspector.md)
- Runs: ファイルはブラウザから送信されません — 処理はすべてローカルで行われます。
- Requires: Any modern browser (Chrome, Edge, Firefox, Safari), desktop and mobile.
- Updated: 2026-09-08

## What it does

ZIP（docx、apk、jarなどZIPベースの形式を含む）、tar、tar.gz、gzip、7z、RARファイルをドロップすると、その中身を即座に閲覧できます。インスペクタはアーカイブ全体を展開することは決してありません：ZIPについてはセントラルディレクトリ — ファイル末尾にあるアーカイブの目次 — だけを読み取ります。だからこそ数ギガバイトのアーカイブでも1秒未満で開き、zip爆弾もここでは無害なのです。単一ファイルをプレビューするときにのみ、そのエントリだけを展開します。7zとRARはWebAssemblyにコンパイルしたlibarchiveで処理し、最初に開いたときにのみオンデマンドで読み込むため、ツールの他の部分は軽量なままです。

ツリービューは、元のサイズと圧縮後のサイズ、圧縮率、更新時刻、CRC、該当する場合は暗号化の南京錠アイコンとともに、すべてのエントリを表示します。加えて統計パネルには、総ファイル数、総サイズ、全体の圧縮率、最大サイズの上位10ファイルが表示されます。テキストファイルをクリックすれば読め、画像なら表示され、それ以外なら先頭のバイトをhexで確認でき、単一エントリは個別にダウンロードでき、ネストされたアーカイブ（ZIP内のZIP）はその場で開きます。

「このZIPは安全か？」の初期判断も提供します：パストラバーサル名（../）を持つエントリや実行可能ファイルにはフラグが付きます。すべてがブラウザ内でローカルに行われ — アーカイブがアップロードされることは決してなく、それはまさにまだ信頼していないアーカイブにとって重要なことです。

## Limits

Does not extract the whole archive or open password-protected entries; use extract-archive to unpack.

## Machine output

Copy JSON copies an envelope `{ tool, url, generatedAt, userAgentHint, result }`. `tool` is `"archive-inspector"`; `result` is the on-screen listing below. The dropped archive's own file name is omitted. Inner entry paths are included. Entry bytes, previews, and thumbnails are omitted.

- `kind` (string | null) — Container format: `"zip"` | `"tar"` | `"tar.gz"` | `"gzip"` | `"7z"` | `"rar"`. `null` = kind was not supplied.
- `zip64` (boolean) — ZIP64 records were used.
- `comment` (string | null) — Archive comment (or gzip inner name as shown). `null` = none on screen.
- `fileCount` (number) — File members (not directories).
- `dirCount` (number) — Directory members.
- `originalBytes` (number) — Sum of known uncompressed file sizes.
- `compressedBytes` (number | null) — Sum of per-entry compressed sizes, or the archive file size for 7z/RAR. `null` = not reported on screen (tar).
- `ratioSaved` (number | null) — Fraction saved (0..1). `null` = ratio was not shown.
- `encryptedEntryCount` (number) — Members with the encrypted flag. `0` = none encrypted (distinct from encrypted members whose contents were not read — contents are never copied).
- `pathTraversalCount` (number) — Members whose path escapes the archive root.
- `executableCount` (number) — Members flagged as executables on screen.
- `entries` (array of objects) — Listing in archive order, capped at 200. Each: `name` (inner path), `isDir`, `size` (or `null` if unknown), `encrypted`, `pathTraversal`, `executable`, `mtime` (ISO 8601 UTC or `null`), `crcHex` (8-digit lowercase hex or `null`).
- `truncated` (boolean) — `true` when more members exist than were copied, including when the parser itself capped the listing.
- `totalEntries` (number) — Real member count reported by the archive, not the copied length.

## FAQ

### 巨大なアーカイブをそれほど速く開けるのはなぜですか？

何も展開しないからです。ZIPファイルは、すべてのエントリを一覧するセントラルディレクトリで終わっています — インスペクタはランダムアクセスでそこだけ（巨大なアーカイブでもわずか数キロバイト）を読み取ります。ファイルデータは特定のエントリをプレビューするときにのみ、そのエントリだけが展開されます。

### 疑わしいZIPをここで開いても安全ですか？

展開するより安全です：ディスクには何も書き込まれず、コードは実行されず、アーカイブが完全に展開されることはないのでzip爆弾も起爆しません。インスペクタはパストラバーサルのエントリ（展開時に対象フォルダの外のファイルを上書きする../名）や実行可能ファイルにもフラグを付けるので、実際に展開する前に把握できます。

### パスワード保護されたアーカイブは開けますか？

暗号化されたZIPのファイル一覧（名前とサイズは通常暗号化されていません）を、保護されたエントリに南京錠を付けて表示できますが、その中身を復号・プレビューすることはできません — パスワードによる展開には対応していません。7zとRARでも同様です：中身が暗号化されたアーカイブでも一覧は表示されますが、エントリをプレビューしようとすると暗黙のうちに失敗するのではなく「暗号化されている」と報告します。ヘッダーごと暗号化された7z（ファイル名も隠されます）はそもそも一覧できず、明確なメッセージとともに処理を辞退します。

### .docx / .apk / .jar が開けるのはなぜですか？

それらの形式は中身がZIPアーカイブだからです — それらを検査すると、実際の内部構造（word/ ドキュメント、AndroidManifest.xml、.classファイル）が表示され、それらをデバッグするときにまさに欲しいものであることがよくあります。

### どの形式に対応していますか？

ZIP（ZIP64、およびdocx/xlsx/apk/jar/epubなどすべてのZIPベース形式を含む）、tar、tar.gz/tgz、単体のgzipはネイティブのリーダーで動作します。7zとRAR（RAR4とRAR5の両方）はWebAssembly上のlibarchiveが処理し、オンデマンドで取得されます。7z/RARについては、ライブラリはエントリの一覧と単一ファイルの展開はできますが、エントリごとの圧縮後サイズや更新時刻は報告しません（それらは「—」と表示されます）。またマルチボリュームのRARセットには対応していません。WebAssemblyデコーダー（gzip後で約0.5MB）は実際に7zまたはRARファイルを開いたときにのみ読み込まれるため、ツールの他の部分が重くなることはありません。
