require 'find' require 'pp' def eachPath(root,pattern) find_entries = Array.new Find.find(root) do |path| find_entries.push(path) end selectedPath = find_entries.select {|p| p =~ pattern} selectedPath.each {|path| yield path } end eachPath("d:/home/ken",/txt/) {|path| f = open(path) f.each {|line| print line} f.close }