- お前ら、wsh使ってますか? Part8
328 :名無し~3.EXE[sage]:2011/12/03(土) 01:45:13.33 ID:luRL2aN8 - windowsのファイルパス名の最大長は256 Bytes(MAX_PATH=256)
でもAPIでのバッファ長は260 Bytesだから、ファイル移動とかで 256-259Bytesになることはある。 ただし、256Bytesを超えるファイルパスは削除とかできなくなるのは有名。 CMD.exeもこの制限を免れることはできない。
|
- お前ら、wsh使ってますか? Part8
331 :名無し~3.EXE[sage]:2011/12/03(土) 05:00:45.99 ID:luRL2aN8 - Bytesじゃなくて文字数だったかもしれん。
あと、WIN32APIのMAX_APTHは260だった。(MAX_FNAMEが256) ただしNTFSの制限は確か32767だったと思うので、64bit Windows(WIN64API)はまた別かも知れん。 まあC++言語とか使う人じゃなかったら意味ないdefine値だが。
|
- お前ら、wsh使ってますか? Part8
332 :名無し~3.EXE[sage]:2011/12/03(土) 05:44:57.72 ID:luRL2aN8 - あっ、NTFSのMFTはは内部Unicode(UTF-16)だった。(なのでwindowsでの取り扱いも同様)
なので260はUnicodeでのカウントであり、Bytesにすると520Bytesだね。 あと、32767はNTFSのパス名の制限であり(とはいえwindowsでは扱えない) ファイル名、フォルダ名は255文字までなのでお間違えなく。
|
- お前ら、wsh使ってますか? Part8
333 :名無し~3.EXE[sage]:2011/12/03(土) 05:54:52.63 ID:luRL2aN8 - ただMAX_PATHが260だとしても、windowsの内部でどうAPIが使われているのか
不明なので正確な制限はexplorerその他の作りにもよるので 使うものを自分で調べるしかないのかも。
|