我正在try 使用以下代码创建目录:

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::enoint)

为什么这个目录不是由上面的Dir.mkdir语句创建的?

推荐答案

您可能正在try 创建嵌套目录.假设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的 comments 太短):

> system 'mkdir', '-p', 'foo/bar' # worse version: system 'mkdir -p "foo/bar"'
=> true

但这似乎(至少在我看来)和使用外部"工具"一样糟糕,因为在某些系统上可能无法使用外部"工具"(虽然我很难想象没有mkdir的系统,但谁知道呢).

Ruby相关问答推荐

如何使用Ruby range?

生成带有小写字母和数字的唯一随机字符串

Ruby 相当于 Groovy 的 Elvis (?:) 运算符?

ruby 是否支持 case 语句中的范围?

您如何将 Cucumber 场景标记为待处理

Ruby 中的p是什么?

用反斜杠单引号替换单引号

如何通过拆分字符的最后一次出现将字符串拆分为仅两部分?

什么是匹配不在行尾的字符串的正则表达式?

如何强制 Ruby 字符串为 n 个字符

为什么 Ruby 的 Date 类会自动加载,但 DateTime 不会?

当我将参数传递给脚本时,使用 gets() 会出现没有这样的文件或目录错误

如何使用密码保护我的 /sidekiq 路由(即需要对 Sidekiq::Web 工具进行身份验证)?

Ruby 哈希白名单过滤器

为什么这个 Ruby 对象同时具有 to_s 和 inspect 似乎做同样事情的方法?

从数组 Ruby 中删除元素

在 Ruby 中解析制表符分隔文件的最佳方法是什么?

将浮点数舍入到Ruby中最接近的整数

Ruby:如何在不指向同一个对象的情况下复制变量?

查找模块中可用的类