Skip to content Skip to sidebar Skip to footer

What's The Ruby Equivalent Of Python's Os.walk?

Does anyone know if there's an existing module/function inside Ruby to traverse file system directories and files? I'm looking for something similar to Python's os.walk. The close

Solution 1:

The following will print all files recursively. Then you can use File.directory? to see if the it is a directory or a file.

Dir['**/*'].each { |f| print f }

Solution 2:

Find seems pretty simple to me:

require "find"
Find.find('mydir'){|f| puts f}

Solution 3:

require 'pathname'

def os_walk(dir)
  root = Pathname(dir)
  files, dirs = [], []
  Pathname(root).find do |path|
    unless path == root
      dirs << path if path.directory?
      files << path if path.file?
    end
  end
  [root, files, dirs]
end

root, files, dirs = os_walk('.')

Post a Comment for "What's The Ruby Equivalent Of Python's Os.walk?"