長いファイル名前(LFN)
私達がルートディレクトリの議論で既に先に論議してしまったので、前にルートディレクトリはサイズで固定され、ディスクに固定位置にあるのが常であったが、ファイルとして今扱われると必要に今それは育つことは自由である。
これは各々の長いファイル名が多数のディレクトリ・エントリを使用するので長いファイル名にとって非常に重要である。 8.3のファイル名を使用するシステムへ長いファイル名サポートをオペレーティング加えることは11以上の特性を握り拡大のディレクトリ・エントリ程にやすくない。
この新しいオペレーティングシステムが255特性のファイル名を戻せば、これ以上より11の特性を受け取ると期待しない多くの古い適用はので読む、そしてファイル名およびオペレーティングシステムのコピー(発言)のためにそのスペース取っておいたらファイル名を貯えるためにプログラムが記憶を取っておかなければならない、他のデータに16バイトを32の特性得る重ね書きされて衝突する。 適用を壊す確実な方法はデータ空間に乱データをコピーすることである。
この問題を克服すると、利発な解決は長いファイル名を支える問題へのWindows 95でdosおよびWindowsの塗布の前のバージョンの両立性を維持している間、見つけられた。
ほとんどの適用が(Nortonディスク医者のような低レベルのディスクユーティリティを除いて)ファイルおよびサブディレクトリーの名前のためのシステムをただすとき、ディスクを離れてディレクトリ・エントリを読むことによって直接、オペレーティングシステムに造られる等置機能を使用することによってそうするない。
ディレクトリ・エントリは隠れる読み取り専用の組合せと印が付いていることが私達がわかっているのでシステムおよびボリュームラベルはビットを帰因させる。 ディレクトリ・エントリの属性バイトが価値0FHを保持すれば多分、等置機能はdosのすべての既存のバージョンに造り、そこになかったようにすべての前窓はWindowsの95の版余分をそのディレクトリ・エントリとばす。
そして、解決はあらゆるファイルおよびサブディレクトリーのすべての適用およびWindows 95の(と後で)塗布だけと長いファイル名のためのサポートを加えるために書直された適用に目に見える長い名前に目に見える短い名前の2つの名前を貯えることだった。 短いファイル名は慣習的な32バイトのディレクトリ・エントリの8.3のフォーマットで貯えられる。
私達は既にWindowsが6つの大文字にそれを省略し、基礎ファイル名ことをの終わりへ「~1」を加えることによって長い1からの短いファイル名を作成すること論議してしまった。
既に同じ最初6つの特性とのもう一つのファイル名があれば、数は増加する。 延長は同じ保たれ、Windowsおよびdosの以前のバージョンで違法だったどの特性でも下線と取り替えられる。
長いファイル名は0FHに置かれる属性バイトと印が付いている特にフォーマットされていた32バイト長いファイル名前(LFN)のディレクトリ・エントリで貯えられる。 ある特定のファイルかサブディレクトリーのために、1つ以上の長いファイル名前のディレクトリ・エントリのグループはすぐにディスクの単一の8.3ディレクトリ・エントリに先行する。
各々の長いファイル名前のディレクトリ・エントリは必要と13文字までの長いファイル名、およびオペレーティングシステムの全体の長いファイル名から成り立つためにひもを多数一緒に含んでいる。
長いファイル名前のディレクトリ・エントリのために、ファイル名はasciiの1バイトに対して特性ごとの2バイトを要求するUnicodeのフォーマットで貯えられる。 ファイル名の特性は3つの別々の分野間で広がる:
- 長さの最初の10バイト(5つの特性)、
- 第2 12バイト(6つの特性)、
- 第3 4バイト(2つの特性)。
ディレクトリ・エントリの把握の最初のバイトの最も低い5ビット他の長いファイル名前のディレクトリ・エントリに関連してディレクトリ・エントリの位置を識別する連続番号が同じファイルと関連付けた。
長いファイル名が3つのLFNのディレクトリ・エントリを要求すれば、第1の連続番号は第2の2つ、それが順序の最後の記入項目であることを示すために三番目の連続番号は3であり、の第3記入項目の最初のバイトのかまれた6つは1に置かれる1であり。
属性分野はそれ属性バイトを検査後どのタイプのdirectoryディレクトリ・エントリそれをあまで取扱かfileファイルシステムがない知のでに同じ位置のLFNのdirectoryディレクトリ・エントリようにの8.3のdirectoryディレクトリ・エントリ現われ。 開始の集りの数値型のフィールドはまた同じ位置に現われるが、LFNのディレクトリ・エントリに価値は0常にである。 タイプ状況説明マーク・フィールドはまたあらゆる長いファイル名の0を保持する。
長いファイル名の問題の1つはそれらが短い物よりより多くのディスク空間を消費することである。 それはディスク空間が利用できる限り、サブディレクトリーが収容するために加えたディレクトリ・エントリを大きくなることができるが、ルートディレクトリで利用できるディレクトリ・エントリの最大数がサイズで限られるルートディレクトリの固定および長いファイル名の不用なスペースであるので長い名前がサブディレクトリーで貯えられるとき大事でない。
128特性の名前が11の記入項目を要求するので、ハードディスクのルートディレクトリがほとんどで512のディレクトリ・エントリを長い名前のための10および短い名前のための1含んでいれば、今例えば、それぞれが128特性の名前を与えられたらルートディレクトリで46のファイルおよびサブディレクトリーだけ作成してもよい。
問題はFAT32のためにFAT32システムでルートディレクトリがと同時にサイズで育つことができるファイル扱われるのでFAT32の下のルートディレクトリがまた育つことができるのでまたなくなる。
|