Recursive mkdir

So, I was surprised to find out that Dir.mkdir will not create all
folders in a path when more than just the last level does not exist.
Example: Dir.mkdir('/f1/f2/f3') will not create /f3 when /f2 does not
exist. I expected it to make both /f2 and /f3 to get the job done. I
expected it because the language I used most previously did do that.

After some googling I'm not finding any elegant solutions.

Obviously I could split the path at / and iterate through each folder
name in sequence with an Exists? and mkdir follow up if needed.

Is that really the only option? To do this manually?

Just curious.

-- gw

···

--
Posted via http://www.ruby-forum.com/.

Greg Willits wrote:

So, I was surprised to find out that Dir.mkdir will not create all
folders in a path when more than just the last level does not exist.
Example: Dir.mkdir('/f1/f2/f3') will not create /f3 when /f2 does not
exist. I expected it to make both /f2 and /f3 to get the job done. I
expected it because the language I used most previously did do that.

After some googling I'm not finding any elegant solutions.

Obviously I could split the path at / and iterate through each folder
name in sequence with an Exists? and mkdir follow up if needed.

Is that really the only option? To do this manually?

ARGH. FileUtils.mkdir_p()

(never fails to find the answer right after posting)

-- gw

···

--
Posted via http://www.ruby-forum.com/\.

So, I was surprised to find out that Dir.mkdir will not create all
folders in a path when more than just the last level does not exist.
Example: Dir.mkdir('/f1/f2/f3') will not create /f3 when /f2 does not
exist. I expected it to make both /f2 and /f3 to get the job done. I
expected it because the language I used most previously did do that.

Dir.mkdir emulates the unix mkdir command, which behaves this way. It
shouldn't be surprising.

After some googling I'm not finding any elegant solutions.

Did you try ri?

Obviously I could split the path at / and iterate through each folder
name in sequence with an Exists? and mkdir follow up if needed.

Is that really the only option? To do this manually?

No. Look into FileUtils, specifically FileUtils.mkdir_p

Ben

···

On Mon, Feb 8, 2010 at 1:11 PM, Greg Willits <lists@gregwillits.ws> wrote:

%x{mkdir -p "#{dir}"}
?

-s

···

On 2010-02-08, Greg Willits <lists@gregwillits.ws> wrote:

So, I was surprised to find out that Dir.mkdir will not create all
folders in a path when more than just the last level does not exist.
Example: Dir.mkdir('/f1/f2/f3') will not create /f3 when /f2 does not
exist. I expected it to make both /f2 and /f3 to get the job done. I
expected it because the language I used most previously did do that.

After some googling I'm not finding any elegant solutions.

Obviously I could split the path at / and iterate through each folder
name in sequence with an Exists? and mkdir follow up if needed.

Is that really the only option? To do this manually?

--
Copyright 2010, all wrongs reversed. Peter Seebach / usenet-nospam@seebs.net
| Seebs.Net <-- lawsuits, religion, and funny pictures
Fair game (Scientology) - Wikipedia <-- get educated!

require 'fileutils'

FileUtils.mkdir_p 'my/path/to/something'

···

On Feb 8, 10:11 pm, Greg Willits <li...@gregwillits.ws> wrote:

So, I was surprised to find out that Dir.mkdir will not create all
folders in a path when more than just the last level does not exist.
Example: Dir.mkdir('/f1/f2/f3') will not create /f3 when /f2 does not
exist. I expected it to make both /f2 and /f3 to get the job done. I
expected it because the language I used most previously did do that.

After some googling I'm not finding any elegant solutions.

--
Luis Lavena

Yea, but set $VERBOSE = true and watch all the pretty warnings.
Annoying.

···

On Feb 8, 4:18 pm, Greg Willits <li...@gregwillits.ws> wrote:

ARGH. FileUtils.mkdir_p()