プロが教えるわが家の防犯対策術!

WindowsXPにおいて、下記フォルダを作成した場合のディレクトリエントリについて教えていただきたいと思います。

フォルダ名 C:\雷

上記フォルダを作成し、記憶領域のディレクトリエントリを参照してみると、ファイル名(拡張子含む)が11文字以下であってもVFATのフォーマットでファイル名がunicodeに変換されてディレクトリエントリが作られています。

文字コードが0x80以上ならば、11文字以下でもあってもVFATで作成されるのだと考えていました。

しかし、同時に作成されるショートファイルネームのディレクトリを参照すると、ショートファイルネームには”雷”のS-JISコードが記憶され、VFAT時のショートファイルネームの特徴である先頭6文字に”~"と番号を追加した形になっていません。

これでは8.3形式のディレクトリエントリ、VFATのディレクトリエントリのどちらにも該当しません。
ウィンドウズの動作仕様として、上記のような動作が正しいのでしょうか?

長文で申し訳ありませんが、何卒、回答の程宜しくお願い致します。

A 回答 (5件)

仕様を確認したわけではありませんが、Windows95がリリースされてVFATが世に出た頃、長いファイル名(Long File Name, LFN)とMS-DOS形式のファイル名との関連としては以下のように説明がありました。


・ファイル名が8(7?)文字以上のとき:先頭6文字に"~<No.>"がつく
・ファイル名が7(6?)文字以下の時:通常のファイル名

今回のケースでは後者に該当するので、"~<No.>"がつくファイル名にはならなかったのでしょう。

ところで今回の話、LFNの扱いの話であって、VFATは関係ないんじゃ?
    • good
    • 0
この回答へのお礼

早々に回答していただきありがとうございます。

>LFNの扱いの話であって、VFATは関係ないんじゃ?
確かにその通りですね。LFNの扱いでした。訂正させていただきます。

>・ファイル名が8(7?)文字以上のとき:先頭6文字に"~<No.>"がつく
>・ファイル名が7(6?)文字以下の時:通常のファイル名

しかし、下記のようなフォルダを作成してみましたが、
MS-DOS形式のファイル名は、先頭6文字と”~"とNoにはなっておりませんでした。

C:\雷雷雷雷

漢字一文字が2byteですのでファイル名は8byte。
それとも文字数であって、byte数ではないのでしょうか?
どうしても合点がいかないのです。

お礼日時:2008/07/15 02:07

あれ? LFN ってそういう仕様でしたっけ>#1.


8.3形式に納まっているファイル名のときは「短いファイル名」は付けないんじゃなかったかなぁ?
    • good
    • 0

http://www.geocities.co.jp/SiliconValley-PaloAlt …
http://www.wdic.org/w/TECH/FAT
あたりを参照されてみると良いと思います。

>C:\雷雷雷雷
だと8.3形式の8文字(2バイト文字だと4文字)以内になるからでは?
これはANo.1で回答されている通りですね。

こちらでもフロッピーディスクをテストしてみました。ディレクトリエントリを確認するのに低空飛行と言うソフトを使いました。

A:\雷雷雷雷 だと質問者さんが書かれている通りですね。
A:\雷雷雷雷雷とすると雷雷雷˜1となるようです。
    • good
    • 0

˜の部分かおかしくなってしまいました。

ここは「”~"、チルダ」です。
    • good
    • 0
この回答へのお礼

皆様、回答ありがとうございます。

現状、まだ納得できていません。
ファイル名が8byte以下であっても、1文字2byte(0x80以上?)の文字コードをファイル名に含めた場合、LFNのディレクトリエントリも併せて作成される事がウィンドウズの仕様なのか否かを継続して調べています。

もし、お時間がございましたら再び回答の程、宜しくお願いいたします。

お礼日時:2008/07/15 23:47

> 8.3形式に納まっているファイル名のときは「短いファイル名」は付けないんじゃなかったかなぁ?



すいません、ご指摘の通りです。> No.2さん
# なんか変換ルールか何かと勘違いしてたっぽい。

これだけだとなんなので以前買っていたことを思い出した「インサイド Windows 第4版」を漁ってみました。(以下引用)
--
MS-DOS名の8.3フォーマットを超えるロングファイル名、Unicode文字を含むファイル名、複数のピリオドやピリオドで開始されるファイル名、およびスペースを含むファイル名(中略)このような名前を持つファイルが作成された場合、NTFSは自動的にMS-DOSスタイルのだいたいファイル名を作成します
--

マルチバイトの時文字列を使ったケースについては記載がないのですが、ご参考まで。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!