From: Mike Steiner Date: 2007-05-05T08:01:26+09:00 Subject: Re: Loop through files in a directory ------=_Part_23838_2500820.1178319684555 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline def GetRecursiveFileList ( dirname ) results = Array.new # both methods should work the same (I think one returns the directory names in addition to the files) use_method = 0 if use_method == 0 Dir["#{dirname}/**/**"].each do | thisfile | thisfile.gsub! ( /\// , '\\' ) results.push ( thisfile ) end else require 'find' Find.find ( dirname ) do | thisfile | thisfile.gsub! ( /\// , '\\' ) results.push ( thisfile ) end end return results end On 5/4/07, ara.t.howard@noaa.gov wrote: > > On Sat, 5 May 2007, Ben Johnson wrote: > > > I know this is a nub question, but the documentation on ruby is > > terrible. > > > > How do I loop through all of the files in a directory? > > > > Thanks for your help. > > > > -- > > Posted via http://www.ruby-forum.com/. > > > > > harp:~ > ls dir > a b c > > > harp:~ > cat a.rb > class Dir > def self.ls dir, glob = File.join('**', '**'), &block > ret = [] unless block > Dir.glob(File.join(dir, glob)) do |entry| > block ? block.call(entry) : ret.push(entry) > end > ret > end > end > > Dir.ls 'dir' do |entry| > puts entry > end > > entries = Dir.ls 'dir' > p entries > > > harp:~ > ruby a.rb > dir/a > dir/b > dir/c > ["dir/a", "dir/b", "dir/c"] > > -a > -- > be kind whenever possible... it is always possible. > - the dalai lama > > ------=_Part_23838_2500820.1178319684555--