[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

Creating directory and its files

Martin Sharon

4/27/2009 3:38:00 AM

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.
--
Posted via http://www.ruby-....

3 Answers

7stud --

4/27/2009 4:20:00 AM

0

Martin Sharon wrote:
> 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.
--
Posted via http://www.ruby-....

Martin Sharon

4/27/2009 4:34:00 AM

0

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)


7stud -- wrote:
> Martin Sharon wrote:
>> 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.

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

7stud --

4/27/2009 4:59:00 AM

0

Martin Sharon wrote:
> 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

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