I am using ruby 1.8.5 (2006-12-25 patchlevel 12) [i686-darwin8.8.1].  I will do more testing tonight.  The broken symlinks pointed to network mounts.

 -------------- Original message ----------------------
From: Stefano Crocco <stefano.crocco / alice.it>
> Alle luned26 marzo 2007, robertlaferla / comcast.net ha scritto:
> > Find.find() seems to filter out broken symlinks.  I was hoping to use it to
> > get a recursive list of files in directory so I could run various tests on
> > each file (like whether or not a symlink points to a valid file)
> >
> > What can I use instead of Find.find()?  Is there a better way?
> >
> >    def testsymlinks(srcpath)
> >       Find.find(srcpath) do |path|
> >          if File.symlink?(path)
> >             begin
> >                File.stat(path)
> > 			rescue Exception => e
> >                $stderr.puts "The symlink " + path + " does not point to a
> > valid file.  Please check that you have all your network volumes mounted."
> > exit(-1)
> >             end
> >          end
> >       end
> >    end
> 
> Are you sure of this? I tried a small setup (made a directory, created a file 
> and made a symlink to it, then removed the file) and it works. Find.find 
> passes the broken symlink to the block and File.stat raises a SystemCall 
> error (Errno::ENOENT). I'm running ruby 1.8.6 on gentoo linux.
> 
> Stefano
>