Ответ 1
Вероятно, вы пытаетесь создать вложенные каталоги. Предполагая, что 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
, но кто знает).