FileUtils公共类方法在复制时重命名现有文件

时间:2013-06-03 09:40:30

标签: ruby standard-library

FileUtils类(Ruby StdLib)上,在FileUtils.cpFileUtils.cp_r FileUtils.mv等类方法中,没有提供文件的可选重命名,目标文件存在时。 我想使用FileUtils.cp_r方法并对FileUtils进行一些更改以支持此行为。

这是一个好方法,还是我应该实现自己的FileUtils.cp_r

更新: 我查看了FileUtils.cp_r的Rubinius来源,发现它调用了FileUtils.copy_entry。我发现重新定义库方法可能容易出错。所以我选择实现自定义递归复制方法(将重命名现有文件)。

1 个答案:

答案 0 :(得分:1)

在irb中试试这个

f = File.open('test.rb', 'w+')
  => #<File:test.rb>
irb(main):002:0> File.rename(f, "temp.rb")
  => 0