Calls the associated block with the name of every file and directory listed as arguments, then recursively on their subdirectories, and so on.
See the Find module documentation for an example.
Source Code
# File find.rb, line 35 def find(*paths) # :yield: path paths.collect!{|d| d.dup} while file = paths.shift catch(:prune) do yield file.dup.taint next unless File.exist? file begin if File.lstat(file).directory? then d = Dir.open(file) begin for f in d next if f == "." or f == ".." if File::ALT_SEPARATOR and file =~ /^(?:[\/\\]|[A-Za-z]:[\/\\]?)$/ then f = file + f elsif file == "/" then f = "/" + f else f = File.join(file, f) end paths.unshift f.untaint end ensure d.close end end rescue Errno::ENOENT, Errno::EACCES end end end end
<code/>and<pre/>for code samples.