Windowsのpathについて

Windowsのpathの区切り文字って、'\'だけど、*1
なんで英語のbackslashが\になってしまったんだろう?$が\になるならともかく…。
日本でもASCIIのままで使っていれば良いのに、とか今まで受けた恩恵を無視して
タイピング…。


ファイルを扱うアプリになってくると、ファイル名の文字長の制限とかが
出てくるんだけれど、_ANSI(_MBCSのも含むか)版のA系のWindowsAPIでは、
_MAX_PATH文字の制限がある。
http://risky-safety.org/~zinnia/doc/maxpath.html


なんかTCHAR使って_UNICODE対応しといて、_UNICODEでbuildして、
あとファイル名の先頭に「\\?\」入れとけば、32000文字くらいまで
大丈夫らしい。
http://damedame.monyo.com/ml/archive/200/220.html


しかし、
http://www.ipa.go.jp/security/awareness/vendor/programming/b08_01_main.html
を見てみると、「\\?\」を付けるとサービス機能が不活性化されてしまうようだ。


自分なりの結論として、どうせ周りの人はTCHARも使ってないでcharベタでやってるし、
多分長いファイル名を付けるユーザーは珍種だし、放置。


でもUnicodeにすると変な文字も出せるから捨て難いかも…。

*1:MS-DOSの頃から