复制文件,根据需要在Ruby中创建目录

复制文件,根据需要在Ruby中创建目录,ruby,Ruby,假设我在/source.txt有一个文件,我想把它复制到/a/b/c.txt/a和/a/b可能存在,也可能不存在 是否有办法复制文件,并在必要时让其创建必要的父目录 理想情况下,这将是一个命令。特别是,我希望避免解析目标路径的文件/目录部分,然后手动调用FileUtils.mkdir\p和FileUtils.cp 虽然可以接受依赖Rails的解决方案,但还是首选纯Ruby。通常由您确定目标目录路径是否存在,因此我怀疑是否有任何内置命令可以满足您的要求 但是使用可能非常简单,特别是通过使用解析路径

假设我在
/source.txt
有一个文件,我想把它复制到
/a/b/c.txt
<代码>/a和
/a/b
可能存在,也可能不存在

是否有办法复制文件,并在必要时让其创建必要的父目录

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


虽然可以接受依赖Rails的解决方案,但还是首选纯Ruby。

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

但是使用可能非常简单,特别是通过使用解析路径。您甚至可以将其包装在实用程序例程中,例如:

require 'fileutils'

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

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