我正在尝试使用以下代码创建目录:
Dir.mkdir("/Users/Luigi/Desktop/Survey_Final/Archived/Survey/test")
unless File.exists?("/Users/Luigi/Desktop/Survey_Final/Archived/Survey/test")
但是,我收到此错误:
没有这样的文件或目录-/ Users / Luigi / Desktop / Survey_Final / Archived / Survey / test(Errno :: ENOENT)
为什么Dir.mkdir
上面的语句没有创建该目录?
您可能正在尝试创建嵌套目录。假设foo
不存在,您将收到以下no such file or directory
错误:
Dir.mkdir 'foo/bar'
# => Errno::ENOENT: No such file or directory - 'foo/bar'
要立即创建嵌套目录,FileUtils
需要:
require 'fileutils'
FileUtils.mkdir_p 'foo/bar'
# => ["foo/bar"]
Edit2:您不必使用FileUtils
,您可以进行系统调用(从@mu更新太短的注释):
> system 'mkdir', '-p', 'foo/bar' # worse version: system 'mkdir -p "foo/bar"'
=> true
但这(至少对我来说)似乎是使用外部“工具”的更糟糕的方法,这种方法在某些系统上可能不可用(尽管我很难想象没有mkdir
,但是谁知道)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句