Does Ruby have mkdir -p?

ma11hew28 picture ma11hew28 · Jul 13, 2012 · Viewed 33.7k times · Source

Possible Duplicate:
How to create directories recursively in ruby?

In Ruby, how could I do:

mkdir -p cool/beans
  1. Here's what I came up with:

    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)
    

    But, isn't there a better way?

  2. I know I could do:

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

    But, that's not platform independent, is it? Like, it works on Mac but not on Windows, right?

Answer

Max picture Max · Jul 13, 2012
require 'fileutils'
FileUtils.mkdir_p 'cool/beans'