irb(main):006:0> File.extname("01 miku.mp3")
=> ".mp3"
irb(main):007:0> File.extname("01 miku .mp3")
=> ""
拡張子の直前にスペースが含まれているとダメらしい。
自分で正規表現使って判別するしかないのか…
/.+(\..+)$/ …で良いのかな…?
半角スペースが入ってるなんてぱっと見分からず、最初物凄く悩んでしまった…(´・ω・`)
ちなみに実行環境はruby 1.8.7 (2008-08-11 patchlevel 72) [i386-mswin32]でした。
2 件のコメント:
手元のRubyで試してみました
WindowsXPのコマンドプロンプトでruby.exe -e "p [File.extname('01 miku.mp3'),File.extname('01 miku .mp3'),RUBY_DESCRIPTION]"
[".mp3", ".mp3", "ruby 1.8.7 (2008-05-31 patchlevel 0) [i386-mingw32]"]
[".mp3", ".mp3", "ruby 1.8.7 (2008-06-20 patchlevel 22) [i386-mingw32]"]
[".mp3", "", "ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-mingw32]"]
[".mp3", "", "ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-mswin32]"]
[".mp3", "", "ruby 1.8.7 (2009-04-08 patchlevel 160) [i386-mingw32]"]
[".mp3", ".mp3", "ruby 1.8.7 (2009-06-12 patchlevel 174) [i386-mingw32]"]
1.8.7 patchlevel 72 でエンバグして174で直ったようです
情報ありがとうございます。
結局、自分で再定義して使っていました…
つい更新するのを忘れていたようです。
コメントを投稿