[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

File.new and non-existent directories

JT Kimbell

6/13/2007 4:00:00 PM

Hi,

I may be wrong, but after some testing it appears to me that when I
attempt to create a new file using File.new in a directory that does not
exist, instead of creating the directory, an exception is thrown
instead.

To give some background, I am archiving an email listserv so it can be
searched. I've given the listserv administrator the ability to upload a
word document which is parsed and converted into a text file, and stored
both in a database and in a folder hierarchy on the filesystem. The
folder hierarchy starts with folders of each year (2001, 2002, etc), and
each year contains one folder per month (05.2004, 10.2004, etc). So
when a listserv posting from May, 2007 is added, it would go to
"somedir/2007/05.2007/posting_name.txt". I've had no problems when the
folder already exists, but I would like it to be able to create the new
directories needed when a posting from a new month or year is added, so
we don't have to continually add new folders to keep things running
smoothly.

Can anyone direct me to a function, flag, or strategy to achieve what I
am looking for?

Thanks,

JT

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

3 Answers

Luis Parravicini

6/13/2007 4:08:00 PM

0

On 6/13/07, JT Kimbell <jtkimbell@yahoo.com> wrote:
> I may be wrong, but after some testing it appears to me that when I
> attempt to create a new file using File.new in a directory that does not
> exist, instead of creating the directory, an exception is thrown
> instead.

You could use Dir::mkdir or FileUtils#mkdir to create a directory
and FileUtils#mkdir_p if you want to create a directory and its
parents directories (if they doesn't exists).

--
Luis Parravicini
http://ktulu.co...

Peter Cooper

6/13/2007 4:32:00 PM

0

On 6/13/07, Jason Roelofs <jameskilton@gmail.com> wrote:
> You are correct, File.new creates files, not directories.
>
> Check out Dir and FileUtils: http://ruby-doc...
>
> FileUtils.mkdir "..." unless File.directory?('...')

And also (in the spirit of TMTOWTDI):

require 'ftools'
File.makedirs("dir1/dir2/dir3")

As covered before (
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-... )

Cheers,
Peter Cooper
http://www.rubyi...

JT Kimbell

6/13/2007 5:41:00 PM

0

Thanks everyone for your help!

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