From: "Rebhan, Gilbert" Date: 2007-08-27T16:08:15+09:00 Subject: Re: Dir, recursive filescan -----Original Message----- From: Robert Klemme [mailto:shortcutter@googlemail.com] Sent: Monday, August 27, 2007 9:01 AM To: ruby-talk ML Subject: Re: Dir, recursive filescan > files = Dir["E:/test/foobar/scripts/**/*.xml"] > matches = files.inject(0) {|sum,f| sum + File.read(f).scan('').size} > printf "%10d matches\n%10d files\n", matches, files.size > > If you have a lot of files it may pay off to use Find.find instead of > Dir[]. > */ > > thanks, works like a charm :-) > Never used the inject method until now, i'm still on newbie level. /* Took me a while, too. But if you get the hang of it you'll see it's a really cool utility. At one point I rewrote all the Enumerable methods via #inject just for the learning experience. :-) */ one thing i noticed when using Dir[...] on large dirtrees i.e. C:/ruby i get a Permission denied = filescan.rb:21:in `read': Permission denied - C:/ruby/doc/Expat-1.95.8 (Errno::EACCES) I think that's the reason you mentioned to use Find.find yor large dirtrees ?! Regards, Gilbert