2012-07-13 13 views
49

Eventuali duplicati:
How to create directories recursively in ruby?Ruby ha mkdir -p?

In Ruby, come potrei fare:

mkdir -p cool/beans 
  1. Ecco cosa mi si avvicinò con:

    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) 
    

    Ma, non c'è un modo migliore?

  2. So che potrei fare:

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

    Ma, questo non è indipendente dalla piattaforma, è vero? Come, funziona su Mac ma non su Windows, giusto?

risposta

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

Nota: Tilda non viene espansa automaticamente. – Manav

+6

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

+0

C'è qualche modo creare una directory temporanea ricorsiva, oltre a creare prima un tmpdfir e quindi fare un Dir.mkdir all'interno della directory temporanea? – theTuxRacer