假设我有一个/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.
通常由您来确定目标目录路径是否存在,因此我怀疑是否有任何内置命令可以满足您的要求.
但是使用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