class FileRecursive attr_accessor :childFiles; def recursive_file(dir) Dir.foreach(dir) do |fname| next if fname == '.' || fname == '..' path = dir + '/' + fname if File.directory?(path) recursive_file(path) else @childFiles << File.new(path); end end end def initialize(root_folder) @root_folder = root_folder; @childFiles = Array.new; recursive_file(@root_folder); end end fr = FileRecursive.new("F:\\sfm\\dev\\compdoc2cn"); fr.childFiles.each do |file| puts "#{file.path} => #{file.readlines.length}" end