From: timr Date: 2009-02-28T01:19:08+09:00 Subject: Re: Why does Dir#glob("**/*") miss dot directories? Hi Markus, Thanks for the info. Both strategies work great. Tim:~/Desktop/test> ruby -e 'puts Dir.glob("**/*.rb", File::FNM_DOTMATCH)' .gem/.find_hidden_me.rb .gem/findme.rb Here is the irb session from the second idea to demonstrate. >> Dir.chdir("/Users/Tim/Desktop/test") => 0 >> Dir.pwd => "/Users/Tim/Desktop/test" >> Find.find("."){|x| p x if File.file?(x)} "./.gem/findme.rb" => nil >> Thanks, Tim On Feb 27, 1:46 am, Markus Prinz wrote: > On 27.02.2009, at 10:34, timr wrote: > > > So is there a way to get glob to additionally look inside > > of .directories? > > Yes, by specifying File::FNM_DOTMATCH as the second argument: > > ruby -e 'Dir.glob("**/*.rb", ile::FNM_DOTMATCH)' > > > Alternatively, if you know of another pure and elegant way of finding > > all files recursively, even in dot directories perhaps with File or > > something, I would greatly appreciate an example. > > Maybe this is what you're looking for? > >  From the Find documentation (http://www.ruby-doc.org/stdlib/libdoc/find/rdoc/index.html > ): > require 'find' > > total_size = 0 > > Find.find(ENV["HOME"]) do |path| >    if FileTest.directory?(path) >      if File.basename(path)[0] == ?. >        Find.prune       # Don't look any further into this directory. >      else >        next >      end >    else >      total_size += FileTest.size(path) >    end > end > g, Markus