Ruby/File Directory/Dir

Материал из Wiki.crossplatform.ru

Перейти к: навигация, поиск

Содержание

a little more platform independent:

Dir[File.join(File::SEPARATOR, "usr", "bin", "*")]



Dir["mydir/**/*"]

p Dir["mydir/**/*"]



Dir["mydir/**/*file*"]

p Dir["mydir/**/*file*"]



Dir with patterns

Dir["*.data"]       # Files with the "data" extension
Dir["ruby.*"]       # Any filename beginning with "ruby."
Dir["?"]            # Any single-character filename
Dir["*.[ch]"]       # Any file that ends with .c or .h
Dir["*.{java,rb}"]  # Any file that ends with .java or .rb
Dir["*/*.rb"]       # Any Ruby program in any direct sub-directory
Dir["**/*.rb"]      # Any Ruby program in any descendant directory



Find all the .rb files in mydir

Dir["mydir/*.rb"]



Find all the "regular" files and subdirectories in mydir.

# This excludes hidden files, and the special directories . and ..
Dir["mydir/*"]



Match any of the given strings

Dir["mydir/{text,ruby}*"]  # => ["mydir/text_file", "mydir/ruby_script.rb"]



more concise way of getting directory listings is by using Dir"s class array method

Dir["/usr/bin/*"]



Regex-style character classes

Dir["mydir/[rs]*"]    # => ["mydir/ruby_script.rb", "mydir/subdirectory"]
Dir["mydir/[^s]*"]    # => ["mydir/ruby_script.rb", "mydir/text_file"]



Single-character wildcards

Dir["mydir/?ub*"]     # => ["mydir/ruby_script.rb", "mydir/subdirectory"]
Dir["mydir/.*"]       # => ["mydir/.", "mydir/..", "mydir/.hidden_file"]