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
on 2007-06-13 18:00
on 2007-06-13 18:08
On 6/13/07, JT Kimbell <firstname.lastname@example.org> 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).
on 2007-06-13 18:09
You are correct, File.new creates files, not directories. Check out Dir and FileUtils: http://ruby-doc.org/core/ FileUtils.mkdir "..." unless File.directory?('...') Jason
on 2007-06-13 18:32
On 6/13/07, Jason Roelofs <email@example.com> wrote: > You are correct, File.new creates files, not directories. > > Check out Dir and FileUtils: http://ruby-doc.org/core/ > > 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/... ) Cheers, Peter Cooper http://www.rubyinside.com/
on 2007-06-13 19:41
Thanks everyone for your help!