Creating directory and its files

M

Martin Sharon

Hi there:
I want to create a directory and create files under it.
I can use

FileUtils.mkdir_p ARGV[0]

to create a directory, however if the directory already exist, program
will
generate error messages:

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/fileutils.rb:243:in
`mkdir': File exists - ETFlist (Errno::EEXIST)
from
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/fileutils.rb:243:in
`fu_mkdir'
from
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/fileutils.rb:217:in
`mkdir_p'
from
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/fileutils.rb:215:in
`reverse_each'
from
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/fileutils.rb:215:in
`mkdir_p'
from
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/fileutils.rb:201:in
`each'
from
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/fileutils.rb:201:in
`mkdir_p'


Please tell me how to solve this problem.

Thank you so much.
 
7

7stud --

Martin said:
Hi there:
I want to create a directory and create files under it.
I can use

FileUtils.mkdir_p ARGV[0]

to create a directory, however if the directory already exist, program
will
generate error messages:

How about posting what you want to do if the directory already exists?
If you want to overwrite it(=delete it), then first check if the
directory exists:

if File.exist?("dirname")

If it does, then:

if File.exist?("dirname")
FileUtils.remove_dir("dirname")
end

But that is playing with fire. You could end up deleting your whole
hard drive if you get the right file name in there. A safer option
would be to rename the old dir, and then create the new dir.
 
M

Martin Sharon

You mention me it's safe to create a directory with date version
like directory_yy_mm_dd

i can get date by

time=Date.today()

but how to connect the directory name with the time?

I use

FileUtils.mkdir_p ARGV[0]+time

but there is an error message:

test2.rb:61:in `+': can't convert Date into String (TypeError)

Martin said:
Hi there:
I want to create a directory and create files under it.
I can use

FileUtils.mkdir_p ARGV[0]

to create a directory, however if the directory already exist, program
will
generate error messages:

How about posting what you want to do if the directory already exists?
If you want to overwrite it(=delete it), then first check if the
directory exists:

if File.exist?("dirname")

If it does, then:

if File.exist?("dirname")
FileUtils.remove_dir("dirname")
end

But that is playing with fire. You could end up deleting your whole
hard drive if you get the right file name in there. A safer option
would be to rename the old dir, and then create the new dir.
 
7

7stud --

Martin said:
You mention me it's safe to create a directory with date version
like directory_yy_mm_dd

i can get date by

time=Date.today()

but how to connect the directory name with the time?

I use

FileUtils.mkdir_p ARGV[0]+time

require 'date'

time = Date.today()
fname = "somestring"

combined1 = fname + time.to_s
combined2 = "#{fname}-#{time}"

puts combined1, combined2

--output:--
somestring2009-04-26
somestring-2009-04-26
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,062
Latest member
OrderKetozenseACV

Latest Threads

Top