ruby 将带有子文件夹的文件夹复制到目标位置

Posted

技术标签:

【中文标题】ruby 将带有子文件夹的文件夹复制到目标位置【英文标题】:ruby copy folder with subfolders to a target location 【发布时间】:2013-07-02 09:19:52 【问题描述】:

我正在尝试将一个文件夹及其所有子文件夹从源文件夹复制到目标文件夹。 下面的代码似乎没有这样做。我可以使用

仅复制文件而不是子文件夹
FileUtils.cp_r(Dir["/Volumes/TempData/Collects/Sasi/android/*.*"],"/Volumes/Data/Apps/android")

我错过了什么?

require 'fileutils'
puts "operating_system"
operating_system = gets.chomp

    if operating_system == "android" then
     FileUtils.cp_r(Dir["/Volumes/TempData/Collects/Sasi/android/**"],"/Volumes/Data/Apps/android")
     puts "done"
    elsif operating_system == "ios" then
     FileUtils.cp_r(Dir["Volumes/Data/Apps/iOS/CX5/**"],"/Volumes/TempData/Collects/For_CS")
     puts "done"
    else 
     puts "do nothing"
    end

【问题讨论】:

【参考方案1】:

看起来 FileUtils.copy_entry 方法会为你复制一个目录树。 rubydoc 中有一些信息:http://www.ruby-doc.org/stdlib-2.0/libdoc/fileutils/rdoc/FileUtils.html#method-c-copy_entry

有很多选项(例如是否保留文件所有权),但一些快速测试表明您可以像这样传递源目录和目标目录:

FileUtils.copy_entry @source, @destination

【讨论】:

也适合我。 Threadnecromancer, @sasi 如果它对你有用,请接受答案。 虽然这很好用,但最好将它包裹在 begin-rescue 块周围。

以上是关于ruby 将带有子文件夹的文件夹复制到目标位置的主要内容,如果未能解决你的问题,请参考以下文章

ruby [Jekyll补充数据模块]将jekyll post的补充数据文件复制到帖子的内置html附近的位置#data #jekyll

将 SVN 存储库复制到另一个服务器存储库的子文件夹中,并带有历史记录

从同一存储桶中另一个子文件夹中的 s3 子文件夹中复制文件

从可变源和目标位置复制文件并重命名重复项

文件未正确复制到新位置

我需要我的 Debian 规则文件来简单地将文件复制到它的目标