zip_file_source作り直し

data descriptorの仕様を再度確認したところ、

(Note: PKZIP version 2.04g for DOS only recognizes this bit for method 8 compression, newer versions of PKZIP recognize this bit for any compression method.)

と書かれていて、deflate以外でもdata descriptorは使用できるようです。
無圧縮の場合はエントリの終端が判定できないので、シークなしでパースすることは不可能です。
また、ファイルの属性等、セントラル・ディレクトリを参照しないと得られない情報もあるため、最初にシークしてセントラル・ディレクトリの内容を全て読み込む方式に書き直そうと思います。


あと、PKWAREの仕様書と別にInfo-ZIPの仕様書がありました。
http://www.info-zip.org/pub/infozip/doc/
こちらにはエクストラ・フィールドの仕様も書いてありました。
最初からこれを見て作ればよかったです。
微妙に食い違っている箇所もあって、boost_1_33_1.zipの作成環境のコード(11)がPKWARE仕様だとMVSになるんですが、Info-ZIP仕様だとNTFSになったりします。「なんでMVS?」という疑問がやっと解けました。
この辺りの調整も必要ですね。