Відповіді:
Якщо ви працюєте на unixy-машинах, не забувайте, що ви завжди можете запустити команду оболонки під рубіном, розмістивши її в задній панелі.
`mkdir -p /a/b/c`
Шлях до допомоги!
Pathname('/a/b/c/d.txt').dirname.mkpath
FileUtils.mkdir_p '/a/b/c'
+ створювати d.txt
?
Pathname('/a/b/c/d.txt').dirname.mkpath
і File.write('/a/b/c/d.txt', content)
без filename = '/a/b/c/d.txt'.rpartition('/').last
решти розбору
Ви також можете використовувати власну логіку
def self.create_dir_if_not_exists(path)
recursive = path.split('/')
directory = ''
recursive.each do |sub_directory|
directory += sub_directory + '/'
Dir.mkdir(directory) unless (File.directory? directory)
end
end
Отже, якщо шлях дорівнює 'tmp / a / b / c', якщо 'tmp' не існує, 'tmp' створюється, тоді 'tmp / a /' і так далі і так далі.
FileUtils
іPathname
, мабуть, є найважливішим інструментом для сценаріїв оболонок Ruby.