可能是重复问题:
如何在Ruby中递归地创建目录?
在Ruby中,我该怎么做:
mkdir -p cool/beans
这是我想出来的:
Dir.mkdir('cool') unless File.directory?('cool')
cool_beans_path = File.join('cool', 'beans')
Dir.mkdir(cool_beans_path) unless File.directory?(cool_beans_path)
可是,难道没有更好的方法吗?
我知道我可以这样做:
system('mkdir', '-p', File.join('cool', 'beans'))
但这并不是跨平台的,对吧?比如说,它在 Mac 上可以工作,但在 Windows 上不行,对吗?
FileUtils.mkdir_p
FileUtils.mkdir_p
方法可以创建一个目录及其所有必要的上级目录。它接收一个字符串路径作为参数,如果目录已存在,则不执行任何操作。例如,使用以下代码可以创建一个名为“/tmp/a/b/c”的目录:require 'fileutils' FileUtils.mkdir_p '/tmp/a/b/c'
注意:如果您想要创建文件而不是目录,请使用FileUtils.touch
方法。 - Phrogz