[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

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

Robert La ferla

3/26/2007 9:18:00 PM

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

2 Answers

Stefano Crocco

3/26/2007 9:42:00 PM

0

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

Phillip Gawlowski

3/26/2007 10:04:00 PM

0

chopper wrote:
> Is there a Rails specific list? I tried subscribing to '
> rails@lists.rubyonrails.org' but haven't been able to get a response.
>
> - chopper
>

http://www.rubyonrails.org...

--
Phillip "CynicalRyan" Gawlowski

Eek! That was supposed to be My Special Law, _MY_ special law, I tell
you!

T/