お知らせ

電子会議

ライブラリ

FDelphi サイト全文検索

Delphi FAQ一覧

サンプル蔵



FDelphi FAQ
15番会議室「FAQ編纂委員会」に寄せられた「よくある質問の答え」

[Q]
Windows95での長いファイル名とは一体何文字なのですか? エクスプローラ では、ルートでフルパス 253文字を越えると設定できないようですが。

[A]
 Microsoftの公式文書の一つに、

「Microsoft Windows 95 プログラマーズガイド」Microsoft Corporation著、
アスキーテクライト訳、アスキー出版局、1996

があると思いますが、それによると、

 (0) Windows95では、ネットワークサーバーと、プロテクトモードFATファ
イルシステムをサポートするローカルディスクドライブで長い名前を使える
こと。プロテクトモードFATファイルシステムは、HDやFDにWindows95が使用
するディフォルトのファイルシステムで、ファイルアロケーションテーブル
とディレクトリエントリを使用してディスクドライブの内容に関する情報を
保持する。
 (1) プロテクトモードFATファイルシステムでは、末尾NULL込256文字のフ
ァイル名を保持でき、
 (2) ファイル名を除いて、最大246文字のディレクトリーパス(ドライブ文
字、コロン、円記号込)を使用できる。
 (3) この最大ディレクトリーパスには、8.3形式ファイル名を設定できるの
で、この場合は、246+1+12+1=260文字の末尾NULL込フルパスで、ファイルを
設定できる。

 しかし、エクスプローラで操作してみると、必ずしもこの制限は守られて
いるとは言えないように思えます。ルートのファイル名はフルパスで253文字
(末端NULL含まない)、ディレクトリーのフルパスは248文字(例:
L:\a2345678\...\z2345678\a2345678901\)でも可(ドライブ文字込、末端および末端NULLは含まない)、このディレクトリーに9文字のファイル名設定
可−これで、フルパス258文字、などとなりました。ルートのフルパスで253
文字のファイル名は、リネームして長さを増やせませんし、ディレクトリー
27段の9文字のファイル名(フルパス258文字)も、リネームして259文字には
できませんでした。

 Delphi2.0Jで、

    try
      FileStream:=TFileStream.Create(Edit1.Text,fmCreate);
    finally
      FileStream.Free;
    end;

として、Edit1に、ルートのファイル名(例:L:\a234567-10-...-250-2345)
を入力して実行してみると、このようにフルパスで258文字まで設定できます。
上の例のディレクトリー27段を使ってそこに設定してみると、フルパスで259
文字まで設定できました。これは、上の(1)、(3)が守られていると見受けら
れます。

 これらの、Delphiで設定できたサイズ0のファイルは、エクスプローラで見
ることができ、コピーできますが、エクスプローラでの操作に色々制限が付
きました。例えば、同じ長さはおろか短いファイル名にもリネームできませ
ん。

 また、ファイル名を限界までDelphiで設定できても、これらをDelphiプロ
グラムにドラッグ&ドロップして起動する操作には、[FAQ] ParamStr(i)全体
の長さ制限、で示したように、支障が伴います。


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum FDELPHIに寄せられる質問の中から、よくある質問への回答を FDELPHIのメンバーがまとめたものです。 したがって、これらの回答はボーランド株式会社がサポートする公式のものではなく、掲示されている内容についての問い合わせは受けられない場合があります。

Copyright 1996-1998 Delphi Users' ForumFAQ編纂委員会