レベル2ヘッダ


レベル2ヘッダ
内容 バイト数
全ヘッダの大きさ 2
圧縮法の種類 5
圧縮後のファイルサイズ 4
元のファイルサイズ 4
ファイルの最終更新日時 4
予約済み(0x20 固定) 1
ヘッダのレベル (0x02) 1
ファイルの CRC-16 2
書庫を作成した OS の識別子 1
最初の拡張ヘッダのサイズ 2


 レベル2ヘッダは、レベル0ヘッダ、レベル1ヘッダと 全く互換性のない形式になっています。 レベル2ヘッダは、拡張性と可搬性を考慮されて作られました。

 ファイル名やディレクトリ名は全て拡張ヘッダで表すことになっています。

 ヘッダは基本ヘッダと、 OS共通に使われる情報とOS独自の情報等を入れるための、 拡張ヘッダに分かれています。

 全ヘッダのサイズを16進数2バイトで表したとき、 下位1バイトが0ならば、拡張ヘッダの後ろに 1バイトのダミーのデータを入れて、サイズを1増やします。 これは、基本ヘッダの0バイト目が0x00になるのを防ぐためです。

全ヘッダの大きさ

基本ヘッダと全拡張ヘッダを含めたヘッダの合計サイズが入ります。 この「全ヘッダの大きさ」の2バイト部分も含まれています。

圧縮法の種類

どの様な圧縮アルゴリズムによって圧縮されたかを記録しています。 例えば、'-lh5-'のように5バイトで表します。 詳しい解説は圧縮法の種類を 参照してください。

圧縮後のファイルサイズ

圧縮後のファイルサイズが入っています。

圧縮前の元のファイルサイズ

圧縮前の、元のファイルサイズです。

ファイルの最終更新日時

ファイルの最終更新日時が記録されています。 形式は1970年1月1日0時0分0秒からの秒数を、4バイトで表しています。 ここはGMT(グリニッジ標準時)の時間で表すことになっています。

0x20固定

レベル0ヘッダでは、ファイルの属性が入っていたのですが、 ファイル属性を表す形式はOSによって異なるので、 拡張ヘッダで表すことになりました。

ヘッダのレベル

ヘッダのレベル値が書かれています。もちろん、 今はレベル2ヘッダを説明しているので、2が入ります。

ファイルのCRC-16

変換公式 X16+X15+X2+1で 計算した、ファイルのCRC値が入ります。

書庫を作成したOSの識別子

書庫を作成したOSの識別子が入っています。

最初の拡張ヘッダのサイズ

最初の拡張ヘッダのサイズが入っています。 レベル1ヘッダのときは、ここがが0のときは、拡張ヘッダが無い場合でしたが、 レベル2ヘッダではここが0ということはありません。

拡張ヘッダ

以下、拡張ヘッダが繰り返されます。 詳細は拡張ヘッダを見てください。


(C)Copyright 1997, t.okamoto.