2012-07-13 18 views
49

Duplicar posible:
How to create directories recursively in ruby?¿Ruby tiene mkdir -p?

En Ruby, ¿Cómo podría hacer:

mkdir -p cool/beans 
  1. Esto es lo que ocurrió:

    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) 
    

    Pero, ¿no hay una mejor manera?

  2. Sé que podría hacer:

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

    Pero, eso no es independiente de la plataforma, ¿verdad? Al igual, funciona en Mac pero no en Windows, ¿verdad?

Respuesta

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

Nota: Tilda no se expande automáticamente. – Manav

+6

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

+0

¿Hay alguna manera? para hacer un directorio temporal recursivo, aparte de crear primero un tmpdfir y luego hacer un dir.mkdir dentro del directorio temporal? – theTuxRacer