From: "Jesús Gabriel y Galán" Date: 2011-01-02T03:08:20+09:00 Subject: Re: On Mac: File.file? behaves strangely On Sat, Jan 1, 2011 at 6:41 PM, Ronald Fischer 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=ARGV[0] or raise "Which directory?"; > puts "Opening:"+dir > Dir.foreach(dir) { |entry| >  puts entry >  if(File.file?(entry)) >    puts "is a file" >  end > } > > > 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.