Zipファイルで最初のセントラルディレクトリファイルヘッダーの位置を検索しようとしています。中央ディレクトリの位置をZipファイルで見つける方法は?
は、私はこれらを読んでいる:私はそれを見たよう http://en.wikipedia.org/wiki/Zip_(file_format) http://www.pkware.com/documents/casestudies/APPNOTE.TXT
は、私は私が午前セクションのどのようなヘッダにより識別し、郵便番号データをスキャンし、それまでのことを行うことができます私はセントラルディレクトリのヘッダーに当たった。私は明らかにその前にファイルヘッダーを読んで、 "圧縮されたサイズ"を使って実際のデータをスキップし、ファイル内のすべてのバイトをループしません。
私がそれを好きなら、すでにZipファイル内のすべてのファイルとフォルダを知っていますが、その場合はもはやセントラルディレクトリの使用はあまり見られません。
セントラルディレクトリの目的はファイルメタデータとZipファイルの実際のデータの位置をリストすることで、ファイル全体をスキャンする必要はありません。
この順序は、zipファイルを1回のパスで作成することができますが、それは通常、最初 で中央ディレクトリを読み取ることによって、解凍 です:
中央ディレクトリレコードの終わりについて読んだ後、ウィキペディアは言います終わり。
エンド・オブ・セントラル・ディレクトリ・レコードはどのようにして簡単に見つけることができますか?そこに任意のサイズのコメントを付けることができることを覚えておく必要があります。そのため、データストリームの終わりから何バイトあるか分からないことがあります。私はそれをスキャンするだけですか?
P.S.私はZipファイルリーダーを書いています。
最後から後方にスキャンを開始できません(ZIPディレクトリはファイルの最後にあります)。 –
はい、私はできますが、これは本当にあなたがこれを行うことになっている方法ですか?後方に向かってスキャンしてEnd of Central Directoryを見つけることは可能ですが、サイズが16ビットの可変サイズのコメントフィールドがあることを考慮すると、読み取り/スキャンする必要があるコメントは約65kですコメントにはスキャンが失敗するマジックナンバーが含まれています。 – Tower
コメントは常に空で、現在64Kは何ですか? –