From: Robert Klemme Date: 2009-07-04T04:35:04+09:00 Subject: Re: Using Dir.glob to grab only Directories On 03.07.2009 20:43, Andrea Fazzi wrote: > Mario Gr wrote: >> Hi, >> >> I was wondering if there were a way to use Dir.glob to grab only >> directories. After searching google for a bit I found ways to pull only >> file listings, but couldn't find one for just directories. >> >> Currently, I'm using FileTest.directory?(dir) before running any >> operations to test for a directory. > > # Non-recursive > Dir.glob('*').select { |fn| File.directory?(fn) } > > # Recursive > Dir.glob('**/*').select { |fn| File.directory?(fn) } For deep hierarchies it may be more efficient to use Find because you avoid creating a large Array with lots of file names most of which you do not want. # untested require 'find' DOTS = %w{. ..} Find.find base_dir do |f| next if DOTS.include?(File.basename(f)) || !test(?d, f) puts "A dir which is not . or ..: #{f}" end Kind regards robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/