Outputting file sizes of each item in a directory (error)

code:

Dir.foreach(“bad”) do |f|
puts “#{f}: #{File.size f}”
end

Each filename in the directory “bad” is displayed along with the file
size.

I know the file.size works because I tried it with an static name and
displayed fine.

the error I got

============
lib/dir_test.rb:6:in size': No such file or directory - IMG_0964.jpg (Errno::ENOENT) from lib/dir_test.rb:6 from lib/dir_test.rb:5:inforeach’
from lib/dir_test.rb:5

On 13 Nov 2007, at 14:59, Feng T. wrote:

I know the file.size works because I tried it with an static name and

Add ‘bad/’ to each filename. E.g:

Dir.foreach(“bad”) do |f|
puts “#{f}: #{File.size(‘bad/’+f)}”
end

Alex G.

Bioinformatics Center
Kyoto University

Alex G. wrote:

On 13 Nov 2007, at 14:59, Feng T. wrote:

I know the file.size works because I tried it with an static name and

Add ‘bad/’ to each filename. E.g:

Dir.foreach(“bad”) do |f|
puts “#{f}: #{File.size(‘bad/’+f)}”
end

Alex G.

Bioinformatics Center
Kyoto University

excellent, thanks it worked!

Quoth Feng T.:

Alex G.

Bioinformatics Center
Kyoto University

excellent, thanks it worked!

If you did:

Dir[“bad/*”].each do |f|
…
end

in the first place, you wouldn’t need to add the ‘bad/’. I was
originally
going to reply to suggest adding it, but then I though .foreach() would
do
that for ya. Guess not.

Regards,