2010-05-25 71 views
1

我试图实施一个穷人的备份/镜像脚本,并且遇到了一些麻烦。Ruby Fileutils.cp_r Permission Denied when:preserve => true

我在Windows XP上,使用Ruby的FileUtils模块递归复制文件。

只要我不将:preserve标志设置为true,一切正常。

作品:

FileUtils.cp_r('Source_dir', 'Dest_dir', :verbose => true) 

不起作用:

FileUtils.cp_r('Source_dir', 'Dest_dir', :verbose => true, :preserve => true) 

我对dest_dir将完全权限,因为它是我的本地计算机的桌面上,我只是创造了它。我可以复制和删除文件和文件夹,但显然会更改或保留文件属性:preserve不起作用。我没有机会在Mac或Linux机器上尝试这种方式,但是通过在线阅读:preserve标志是在Windows环境中遇到的正常绊脚石。

在类似的问题中,FileUtils.cp_r在目标目录中遇到现有文件时的默认行为是什么?只需使用Source中的任何内容覆盖并替换Destination中的所有内容,或者可以跳过具有冲突的文件并稍后将其记录下来以供解析? (如果这应该是一个单独的问题,只是让我知道,我会做到的。)

感谢,

斯宾塞

回答

1

我最后不得不在目标目录的权限更改为允许修改,因为它看起来会写入文件,然后修改属性。

相关问题