From: Kazuhiro Yoshida Date: 2000-08-08T21:57:59+09:00 Subject: [ruby-list:24134] File.rename error message もりきゅうです。 MS-Windows98 で ruby 1.4.5 (2000-06-26) [i386-mswin32] な環境です。 ren.rb -- File.rename 'from', 'to' -- で, from が存在しないとき ren.rb:1:in `rename': No such file or directory - from (Errno::ENOENT) from ren.rb:1 となります。こちらは良いのですが, from, to が共に存在するとき ren.rb:1:in `rename': File exists - from (Errno::EEXIST) from ren.rb:1 となります。 このエラーの原因は to が存在することによるものですから ren.rb:1:in `rename': File exists - to (Errno::EEXIST) from ren.rb:1 のように from ではなくて to と表示されるべきだと思います。 -- static VALUE rb_file_s_rename(obj, from, to) VALUE obj, from, to; { Check_SafeStr(from); Check_SafeStr(to); if (rename(RSTRING(from)->ptr, RSTRING(to)->ptr) < 0) if (errno == EEXIST) rb_sys_fail(RSTRING(to)->ptr); else rb_sys_fail(RSTRING(from)->ptr); return INT2FIX(0); } -- ところが, FreeBSD-2.2.5R で同様に試してみると EEXIST には ならないようです。 File.rename 'from', 'to' する前に,いちいち File.delete 'to' するのは面倒なので,mswin でも EEXIST にならないようにして いただけるとうれしいです。 ---- Kazuhiro Yoshida moriq@moriq.com