【问题标题】:Ruby Fileutils.cp_r Permission Denied when :preserve => trueRuby Fileutils.cp_r Permission Denied when :preserve => true
【发布时间】:2010-05-25 21:30:34
【问题描述】:

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

我在 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 中的所有内容,或者我可以跳过有冲突的文件,然后将其记录下来以供稍后解决? (如果这应该是一个单独的问题,请告诉我,我会做一个。)

谢谢,

斯宾塞

【问题讨论】:

    标签: windows ruby permissions


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2020-06-24
      • 2018-08-15
      • 2012-07-08
      • 1970-01-01
      • 1970-01-01
      • 2013-04-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多