我想将目录复制到另一个目录。 (如果存在,覆盖) 所以在我的循环中,,,
FileUtils.cp_r(src, dst, :remove_destination => true)
但我遇到了错误
/home/deployer/.rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/fileutils.rb:1550:in `block in fu_each_src_dest': same file: 273 and /todpop/todpop_data/word/image/273 (ArgumentError)
from /home/deployer/.rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/fileutils.rb:1565:in `fu_each_src_dest0'
from /home/deployer/.rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/fileutils.rb:1549:in `fu_each_src_dest'
from /home/deployer/.rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/fileutils.rb:434:in `cp_r'
from copy.rb:16:in `block (2 levels) in <main>'
from copy.rb:15:in `each'
from copy.rb:15:in `block in <main>'
from copy.rb:8:in `each'
from copy.rb:8:in `<main>'
为什么在设置时发生此错误:remove_destination? T ^ T
答案 0 :(得分:1)
您似乎正在尝试将文件src
移至完全相同的位置dst
,并按功能返回错误。
答案 1 :(得分:0)
这是一些自己调试的方法。在你的帖子中我可以看到'block in fu_each_src_dest'行:同一个文件:现在我来到链接fu_each_src_dest
。以下是代码:
# File lib/fileutils.rb, line 1512
def fu_each_src_dest(src, dest) #:nodoc:
fu_each_src_dest0(src, dest) do |s, d|
raise ArgumentError, "same file: #{s} and #{d}" if fu_same?(s, d)
yield s, d, File.stat(s)
end
end
现在我相信你会得到错误出现的原因。