在FileUtils
类(Ruby StdLib)上,在FileUtils.cp
,FileUtils.cp_r
FileUtils.mv
等类方法中,没有提供文件的可选重命名,目标文件存在时。
我想使用FileUtils.cp_r
方法并对FileUtils
进行一些更改以支持此行为。
这是一个好方法,还是我应该实现自己的FileUtils.cp_r
?
更新:
我查看了FileUtils.cp_r
的Rubinius来源,发现它调用了FileUtils.copy_entry
。我发现重新定义库方法可能容易出错。所以我选择实现自定义递归复制方法(将重命名现有文件)。
答案 0 :(得分:1)
在irb中试试这个
f = File.open('test.rb', 'w+')
=> #<File:test.rb>
irb(main):002:0> File.rename(f, "temp.rb")
=> 0