C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.30313 の関連記事表示

<< 0 >>
■30313  Re[1]: _MAX_PATH について
□投稿者/ Jitta -(2008/12/20(Sat) 23:24:48)
>
    No30310 (雲 さん) に返信
    >
    > #define _MAX_PATH 260 /* max. length of full pathname */
    > #define _MAX_DRIVE 3 /* max. length of drive component */
    > #define _MAX_DIR 256 /* max. length of path component */
    > #define _MAX_FNAME 256 /* max. length of file name component */
    > #define _MAX_EXT 256 /* max. length of extension component */
    >
    > と定義されていることから、_MAX_PATH = 260 はいくら何でも短すぎでは。
    > と言う気になってきました。

    なぜ?

    _MAX_DRIVE は、ドライブ文字の長さなので、"d:" とか "z:" です。終端子を含めても3文字あれば十分です。
    _MAX_DIR は、ディレクトリの長さです。パス デリミタを含めて256文字に制限されています。たぶん、FAT の制限を引きずっている。
    _MAX_FNAME は、ファイル名単体の長さです。つまり、ファイル名は256文字、ディレクトリ名は256文字で計512文字いけそうですが、ディレクトリ、ファイル名を含めた「パス名」が、256文字以内に制限されています。

    なので、_MAX_PATH は 260 で十分です。

    しかし、3200文字(だったかな?)に拡大する方法もあります。"\\hostname\" から始まる文字列の時は、拡張されます。


    >
    > だとすると、例えば、
    >
    > GetModuleFileName
    >
    > でモジュールのフルパスを取得するときには、いったい、いくつの文字列の配列を渡せば良いのか?
    > というのが、わからなくなってきました。
    >
    > MSDNを読むと、特に、そのあたりについては、何も言っていないし。
    >
    > 実用上は、TCHAR filepath[32000] とかしておけば良いかもしれませんが、もっと良い
    > 記述方法とかあると嬉しいな。と思っています。
    >
    > 皆さんは、どのようにされているのでしょうか?
    >
記事No.30310 のレス /過去ログ54より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -