【问题标题】:Copy a file, creating directories as necessary in Ruby复制文件,在 Ruby 中根据需要创建目录
【发布时间】:2011-02-16 18:46:00
【问题描述】:

假设我在/source.txt 有一个文件,我想将它复制到/a/b/c.txt/a/a/b 可能存在也可能不存在。

有没有办法复制文件并让它在必要时创建必要的父目录?

理想情况下,这将是一个命令。特别是,我想避免解析目标路径的文件/目录部分,然后手动调用FileUtils.mkdir_pFileUtils.cp

Pure Ruby 是首选,但依赖于 Rails 的解决方案是可以接受的。

【问题讨论】:

  • 您为什么要在一个命令中执行此操作?大多数文件系统就是这样工作的。您需要一个目录才能将文件放入其中。 2或3个电话有什么问题?
  • 1 次调用比 2 次简单。如果它不能在 1 次调用中完成,那没关系。

标签: ruby


【解决方案1】:

通常由您来确保目标目录路径存在,因此我怀疑是否有任何内置命令可以满足您的需求。

但是使用FileUtils.mkdir_p(dir) 可能非常简单,尤其是使用File.dirname() 来解析路径。您甚至可以将其包装在实用程序中,例如:

require 'fileutils'

def copy_with_path(src, dst)
  FileUtils.mkdir_p(File.dirname(dst))
  FileUtils.cp(src, dst)
end

【讨论】:

    猜你喜欢
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    相关资源
    最近更新 更多