On Sat, Jan 1, 2011 at 6:41 PM, Ronald Fischer
<rovf_via_ruby_forum / fusshuhn.de> wrote:
> Or, rather, I probably just made a silly mistake which I can't see
> (because I had a long break since I wrote my last Ruby program). Please
> have a look at this program:
>
>
> #!/usr/local/bin/ruby
> dir=3DARGV[0] or raise "Which directory?";
> puts "Opening:"+dir
> Dir.foreach(dir) { |entry|
> =A0puts entry
> =A0if(File.file?(entry))
> =A0 =A0puts "is a file"
> =A0end
> }
>
>
> No matter which directory on Max OSX 10.4 I try this out, it lists all
> entries in the directory, but only for the entry ".DS_Store" (which
> exists on the Mac automatically in every sub-directory), it prints out
> "is a file". It is as if the other directory entries would be no
> (regular) files.
>
>
> What did I do wrong?

entry is relative to the dir, while File.file? works relative to the
working directory. Try this:

irb(main):016:0> Dir.foreach(dir) do |entry|
irb(main):017:1* p entry
irb(main):018:1> p File.file? entry
irb(main):019:1> p File.file?("#{dir}/#{entry}")
irb(main):020:1> end

Jesus.