2007年06月25日

Joliet その2 仕様

Joliet では、ISO9660 の SVD を利用し、文字に UCS-2 を使います。 それに伴う変更点を挙げてゆきます。


1.SVD の設定

1.1 エスケープシーケンスの設定

SVD の Escape Sequences に、UCS-2 を示す 3 レベルあるエスケープシーケンスのいずれかを設定します。

StandardLevelDecimalHex BytesASCII
UCS-2Level 12/5, 2/15, 4/00x25, 0x2F, 0x40"%\@"
UCS-2Level 22/5, 2/15, 4/30x25, 0x2F, 0x43"%\C"
UCS-2Level 32/5, 2/15, 4/50x25, 0x2F, 0x45"%\E"

残りの29バイトは全て 0x00 です。
とりあえず全部扱えるレベル3に設定しておくのが無難です。

1.2 Volume Flags の設定

UCS-2 は ISO2375 に登録済のため、SVD の Volume Flags は 0 です。


2.文字

2.1 記述法

各文字は UCS-2 の文字をビッグエンディアンで使用します。

2.2 使えない文字

次の文字は使用禁止です。

コード文字意味備考
0x00,0x00〜0x00,0x90 制御文字 
0x00,0x2A*アスタリスク 
0x00,0x2F/スラッシュ 
0x00,0x3A:コロン 
0x00,0x3B;セミコロンファイル識別子のファイル名/拡張子とバージョンの区切りに使用
0x00,0x3F?疑問符 
0x00,0x5C\バックスラッシュ 

理由は書かれていませんが、 なんとなく Windows でファイル名として使えない文字は使えませんよ、と言っている気がします。

2.3 使用箇所

SVD 及び SVD から辿るファイルとディレクトリに UCS-2 の文字列を使用します。 並び立てると、

SVD : System Identifier
SVD : Volume Identifier
SVD : Volume Set Identifier
SVD : Publisher Identifier
SVD : Data Preparer Identifier
SVD : Application Identifier
SVD : Copyright File Identifier
SVD : Abstract File Identifier
SVD : Bibliographic File Identifier
ディレクトリレコード : File Identifier
パステーブル : Directory Identifier
拡張属性レコード : System Identifier

つまり a1/d1 文字を使用する箇所の全てです。


3.ファイル識別子

3.1 ファイル識別子の形

ファイル識別子は次の形を取ります。
ファイル名+0x00,0x2E+拡張子+0x00,0x3B+バージョン
0x00,0x2E = '.'
0x00,0x3B = ';'
単純に各文字をUCS-2の文字に変換しただけです。
ドットは自由に使えるので、ファイル名と拡張子の区切りは無いようなものです。

3.2 ファイル識別子の長さ

ファイル識別子はファイル名と拡張子の合計が64文字、128バイトまで使えます。


4.ディレクトリ識別子

4.1 ディレクトリ識別子の長さ

ディレクトリ識別子は64文字、128バイトまで使えます。

4.2 ルートディレクトリと自身のディレクトリ、親ディレクトリ

これらの特別なディレクトリの識別子には、 ISO9660 の PVD と同様に、 識別子の長さを 1 (バイト)と置き、 ルートディレクトリと自身のディレクトリ は 0x00、 親ディレクトリ は 0x01 と設定します。


5. ディレクトリ階層

ディレクトリ階層の深さに制限はありません。8 を越えてもいいです。


6. フルパス名

各ファイルは、以下の合計が 240 バイトを越えないようにします。
・ファイル識別子の長さ
・すべての関連したディレクトリの識別子の長さ
・関連したディレクトリの数

posted by 七癖 at 10:35| Comment(0) | TrackBack(0) | ファイルシステム | このブログの読者になる | 更新情報をチェックする
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。