How to create a file


#1

I use this code to write to a file: File.new(@FILE_NAME,“w”). If the
file name doesn’t exist, I will get “No such file” error. How can I
create the file if it doesn’t exist?

thanks.


#2

On 13.01.2009 08:09, Zhao Yi wrote:

I use this code to write to a file: File.new(@FILE_NAME,“w”). If the
file name doesn’t exist, I will get “No such file” error. How can I
create the file if it doesn’t exist?

I cannot reproduce this behavior. Did you make sure that the directory
exists where you want to create your file? In case not you probably
want to have a look at FileUtils.mkdir_p:

http://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/classes/FileUtils.html#M000676

Cheers

robert


#3

It could be that the operating system is unable to create a file with
that file name. For instance on Windows:

C:>irb
irb(main):001:0> @FILE_NAME = “.”
=> “.”
irb(main):002:0> File.new(@FILE_NAME, “w”)
Errno::EACCES: Permission denied - .
from (irb):2:in initialize' from (irb):2:innew’
from (irb):2

This could be a particular problem when using international character
sets.

Dave


#4

Robert K. wrote:

On 13.01.2009 08:09, Zhao Yi wrote:

I use this code to write to a file: File.new(@FILE_NAME,“w”). If the
file name doesn’t exist, I will get “No such file” error. How can I
create the file if it doesn’t exist?

I cannot reproduce this behavior. Did you make sure that the directory
exists where you want to create your file? In case not you probably
want to have a look at FileUtils.mkdir_p:

http://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/classes/FileUtils.html#M000676

Cheers

robert

The directory doesn’t exist, that’s the problem.

thanks.