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
あーそうだったかも。
いじょ。