【发布时间】:2013-05-29 10:23:53
【问题描述】:
在FileUtils 类(Ruby StdLib)上,在FileUtils.cp、FileUtils.cp_rFileUtils.mv 等类方法中,当目标文件存在时,没有提供文件的可选重命名。
我想利用FileUtils.cp_r 方法并对FileUtils 进行一些更改以支持这种行为。
这是一个好方法,还是我应该实现自己的FileUtils.cp_r?
更新:
我检查了FileUtils.cp_r 的Rubinius 源代码,发现它调用了FileUtils.copy_entry。我发现重新定义库方法可能容易出错。所以我选择实现一个自定义的递归复制方法(这将重命名一个存在的文件)。
【问题讨论】:
-
可以使用
Dir::glob遍历目录树。 -
Metaprogramming是一个口语化术语,而且重命名文件与它是正交的。
标签: ruby standard-library