作者: Bruce.
日時: 2008/1/30(12:38)
Bruce.です。

参考にどぞ。

Perlメモ/Windowsでのファイルパス - Walrus, Digit.
http://digit.que.ne.jp/work/index.cgi?Perl%e3%83%a1%e3%83%a2%2fWindows%e3%81%a7%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%83%91%e3%82%b9

改めてソースを覗いてみましたが、


win32_rename(const char *oname, const char *newname)

で

	    endname = szTmpName+tmplen;
	    for (; endname > szTmpName ; --endname) {
		if (*endname == '/' || *endname == '\\') {
		    *endname = '\0';
		    break;
		}
	    }

と、マルチバイト文字のことなんかこれっぽっちも考えてないコードが悪さしてます。


林 宏 writes:

>  2008/1/16(00:12)
>  Bruce.さん wrote
> 
> >パス名の最後にダメ文字が来るようなパターン(c:/ドキュメント/一覧表)で
> >そのディレクトリに対するreaddirなどでどうしても回避できない状況が発生し
> >ます。
> 
> 日本語ファイル名に[0x5c]を含んでいても、ちゃんと処理してくれますが、
> ディレクトリの最後に「表 0x955c」等があると、Bruce. さんが言われるように、
> chdir()が、失敗します。
> これを回避できる方法が見つかっていません。。。。
> 
> >昔のことなんで正確なところは忘れました :)
> >Win32::ほげほげ なモジュールをごにょごにょすれば完全な回避が可能かも
> >しれませんが調べてません。
>  これなんでしょうか?
>   http://aspn.activestate.com/ASPN/Mail/Message/2996684

あーそうだったかも。

いじょ。