Ruby Fileutils.cp_r权限被拒绝时:preserve =>真正

时间:2010-05-25 21:30:35

标签: windows ruby permissions

我正在尝试实现一个穷人的备份/镜像脚本,并且遇到了一些麻烦。

我在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机器上尝试这个,但是通过在线阅读:保存标志是在Windows环境中遇到的正常绊脚石。

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

谢谢,

斯潘塞

1 个答案:

答案 0 :(得分:1)

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