忍者ブログ

別館 まじサビ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ZIPファイル構造 - zip64

またZIPアーカイブ…。仕様書の気になった部分を断続的に、断片的に翻訳しているからこーなってしまうんです。まとまりのない内容ですが訳した部分からメモしていかないと忘れてしまうんでご了承を。あっ、まずは前回までに吹いたウソの訂正と補足からorz。

[digital signature]ってデジタル署名のことですよね。強い暗号化とは直接は関係ないです。圧縮や暗号化はされないらしいです。
強い暗号化については特許うんぬんの記載があります。利用には連絡と承認もろもろが必要です。
ディスク分割も二通り。spanは分割した個々のファイルすべてに同じファイル名がつけられます。ですので同じディスク上に置くとファイル名の衝突がおきちゃいます。順番はファイルシステムに依存!?。もう一方はsplitと呼ばれています(うまく訳せないので単語のままお送りしています)。[end of central directory record]と[Zip64 end of central directory locator]は同じファイルに配置し分割してはならない。

さて今回はzip64。調べまわってみるとWindowXPではサポートしないとか特許問題があるとか、大容量化で利用されやすい時代になったとか。あっさりめにまとめておこうと。

まず、登場するのはZIPのバージョン4.5から。そして対象となるのはそのフィールドの上限をこえる場合。2bytesなら64K、4bytesなら4Gをこえた値をフィールドに書き込みたいとき。

[local file header]と[file header]
version needed to extractには4.5以上を指定する。対象となるフィールドはcompressed size、uncompressed size、disk number start、relative offset of local header。対象フィールドには0xFFFFや0xFFFFFFFFをいれる。対象になるのは容量が小さく値を格納しきれないフィールドのみです(ここへ来る前にzip64を使用する場合一括で対象フィールド扱いにするサイトを見た?それはちょっと誤認かもです)。
このように隔離した値はextra fieldに書き込むことになります。ヘッダーIDは0x0001。
[2bytes] このextra blockのヘッダーID(0x0001)
[2bytes] このextra blockのサイズ(Size)
[8bytes] 無圧縮時のファイルサイズ(Original Size)
[8bytes] 圧縮時のファイルサイズ(Compressed Size)
[8bytes] local headerのオフセット(Relative Header Offset)
[4bytes] ファイルの先頭が見つかるディスクの番号(Disk Start Number)
順番は固定。ただし0xFFFFや0xFFFFFFFFがセットされたフィールドのみが存在する。
local headerのこの項目はOriginalとCompressedのサイズ両方を含まなければならない!?(仕様書上のBOTHが強調されてます)

[data descriptor]
compressed sizeとuncompressed sizeがそれぞれ8bytesになる。

[end of central directory record]
こちらも対象フィールドには0xFFFFや0xFFFFFFFFをいれる。その値は[Zip64 end of central directory record]の同名フィールド?に格納する。対象と容量は以下の通り。
[2bytes→4bytes] number of this disk
[2bytes→4bytes] number of the disk with the start of the central directory
[2bytes→8bytes] total number of entries in the central dir on this disk
[2bytes→8bytes] total number of entries in the central dir
[4bytes→8bytes] size of the central directory
[4bytes→8bytes] offset of start of central directory with respect to the starting disk number

なんだかすごく混乱気味ですねf(^ ^;)ボクの処理能力を超えてますorz。ご利用は計画的に、各自の判断で、でも間違いを発見したら教えてくれるとうれしいですm(_ _)m。

PR

comment

お名前
タイトル
E-MAIL
URL
コメント
パスワード

TemplateDesign by KARMA7

このブログはステキなTemplateを少し改造して利用しています。

忍者ブログ [PR]