Loop through files in a directory

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/.

Have a look at Find.find and Dir.each.

···

On 5/4/07, Ben Johnson <bjohnson@mediamanifest.com> 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

···

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/\.

--
be kind whenever possible... it is always possible.
- the dalai lama

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 <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