2012-07-13 6 views
49

Powiel możliwe:
How to create directories recursively in ruby?Czy Ruby ma mkdir -p?

W Ruby, w jaki sposób mogę to zrobić:

mkdir -p cool/beans 
  1. Oto co wymyśliłem:

    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) 
    

    Ale czy nie ma lepszego sposobu?

  2. wiem, co mogłem zrobić:

    system('mkdir', '-p', File.join('cool', 'beans')) 
    

    jednak, że nie jest niezależny od platformy, to jest? Tak, działa na Macu, ale nie na Windowsie, prawda?

Odpowiedz

96
require 'fileutils' 
FileUtils.mkdir_p 'cool/beans' 
+3

Uwaga: Tilda nie jest automatycznie rozszerzony. – Manav

+6

Dokumenty: ['FileUtils.mkdir_p'] (http://www.ruby-doc.org/stdlib-2.1.1/libdoc/fileutils/rdoc/FileUtils.html#method-c-mkdir_p) – Phrogz

+0

Czy jest jakiś sposób utworzyć rekurencyjny katalog tymczasowy, inny niż najpierw tworzenie tmpdfir, a następnie tworzenie katalogu Dir.mkdir wewnątrz katalogu tymczasowego? – theTuxRacer