From: "たけ (tk)" Date: 2001-04-15T01:25:56+09:00 Subject: [ruby-list:29259] Re: Time Stamp Copy of File.copy たけ(tk)です。 Minero Aoki さん曰く。 》それだと ftools とも、ぼくがいま使ってるのとも互換性がなくなります。 》(ちなみに配列を使う書き方もできます。以下のように) 》 》 FileUtils.cp file1, file2, %w( file3 file4 ), dir 》 》ftools は ftools で残してこっちは別物で行くんだあ、とするなら 》たしかにルールが単純でいいですね。少なくとも書くほうにとっては 》場合わけが少なくて楽です ^^;;  ちょっと実装を見させてもらいました。フラットにしているので、オプション を配列から取り出すだけで実現できそうですね。オプションの場所はどこでも良 くなる。 # amstd-1_9_7_tar\amstd-1.9.7\lib\amstd\futils.rb 01-02-14 6:37 》 def cp( *args ) 》 args.flatten! recursive = args.delete(:recursive) preserve = args.delete(:preserve) 》 to = args.pop 》 futilsmsg "cp #{args.join ' '} #{to}" if @verbose 》 to = File.expand_path( to ) 》 args.each do |i| 》 FU.cp File.expand_path(i), to if preserve ... end if recursive ... end 》 end 》 end  --  ハッシュ型引数の使い方が分からないのですが、 recursive = args.delete_hash(:recursive) で :recursive=>true の引数の値(true)が recursive に取り出せるようだと簡 単に使えますね。 -- それと、お願いなのですが、 [ruby-list:26793]でも書いたのですが、 File.join でルートディレクトリからの指定をしようとすると失敗してしまいま す。次のような、失敗しないメソッドを用意していただけないでしょうか?。 p File.join('/','test') # "//test" p File.join('a:/','test') # "a://test" def File.join_ex( *args ) File.join( *args ).gsub( "//" , "/" ) end たけ(tk) ggb03124@nifty.ne.jp http://member.nifty.ne.jp/take_tk