[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Re: Find.find() doesn't work with broken symlinks

Robert La ferla

3/26/2007 10:01:00 PM

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 lunedì 26 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
>


1 Answer

Ara.T.Howard

3/26/2007 11:32:00 PM

0