Objects of class Dir
are directory streams representing directories in the underlying file system. They provide a variety of ways to list directories and their contents.
The directory used in these examples contains the two regular files (config.h
and main.rb
), the parent directory (..
), and the directory itself (.
).
See also: File
.
Returns a new directory object for the named directory.
Alias for .new(path)
Returns an array of all files that match against any of patterns.
Returns an array of all files that match against any of patterns.
Changes the current working directory of the process to the given string.
Changes the current working directory of the process to the given string and invokes the block, restoring the original working directory when the block exits.
See #children
.
Returns the current working directory.
Removes the directory at the given path.
See #each
.
See #each_child
.
Returns true
if the directory at path is empty, otherwise returns false
.
See #entries
.
Returns true
if the given path exists and is a directory
Yields all files that match against any of patterns.
Returns an array of all files that match against any of patterns.
Returns an array of all files that match against any of patterns.
Yields all files that match against any of patterns.
Creates a new directory at the given path.
Creates a new directory at the given path, including any non-existing intermediate directories.
Opens a directory and yields it, closing it at the end of the block.
Removes the directory at the given path.
DEPRECATED Use Dir.delete
instead
Returns the tmp dir used for tempfile.
Returns an array containing all of the filenames except for .
and ..
in the given directory.
Closes the directory stream.
Calls the block once for each entry in this directory, passing the filename of each entry as a parameter to the block.
Must return an Iterator
over the elements in this collection.
Calls the block once for each entry except for .
and ..
in this directory, passing the filename of each entry as a parameter to the block.
Returns an array containing all of the filenames in the given directory.
Appends a String representation of this object which includes its class name, its object address and the values of all instance variables.
Reads the next entry from dir and returns it as a string.
Repositions this directory to the first entry.
Appends a short String representation of this object which includes its class name and its object address.
Iterable(String)
Enumerable(String)
Reference
Reference
Object
Object
Alias for .new(path)
Returns an array of all files that match against any of patterns.
The pattern syntax is similar to shell filename globbing, see File.match?
for details.
NOTE Path separator in patterns needs to be always /
. The returned file names use system-specific path separators.
Returns an array of all files that match against any of patterns.
The pattern syntax is similar to shell filename globbing, see File.match?
for details.
NOTE Path separator in patterns needs to be always /
. The returned file names use system-specific path separators.
Changes the current working directory of the process to the given string.
Changes the current working directory of the process to the given string and invokes the block, restoring the original working directory when the block exits.
See #each_child
.
Returns true
if the directory at path is empty, otherwise returns false
. Raises File::NotFoundError
if the directory at path does not exist.
Dir.mkdir("bar") Dir.empty?("bar") # => true File.write("bar/a_file", "The content") Dir.empty?("bar") # => false
Returns true
if the given path exists and is a directory
Creates a new directory at the given path. The linux-style permission mode can be specified, with a default of 777 (0o777).
NOTE mode is ignored on windows.
Creates a new directory at the given path, including any non-existing intermediate directories. The linux-style permission mode can be specified, with a default of 777 (0o777).
Opens a directory and yields it, closing it at the end of the block. Returns the value of the block.
Removes the directory at the given path.
DEPRECATED Use Dir.delete
instead
Returns an array containing all of the filenames except for .
and ..
in the given directory.
Calls the block once for each entry in this directory, passing the filename of each entry as a parameter to the block.
Dir.mkdir("testdir") File.write("testdir/config.h", "") d = Dir.new("testdir") d.each { |x| puts "Got #{x}" }
produces:
Got . Got .. Got config.h
Calls the block once for each entry except for .
and ..
in this directory, passing the filename of each entry as a parameter to the block.
Dir.mkdir("testdir") File.write("testdir/config.h", "") d = Dir.new("testdir") d.each_child { |x| puts "Got #{x}" }
produces:
Got config.h
Returns an array containing all of the filenames in the given directory.
Appends a String representation of this object which includes its class name, its object address and the values of all instance variables.
class Person def initialize(@name : String, @age : Int32) end end Person.new("John", 32).inspect # => #<Person:0x10fd31f20 @name="John", @age=32>
Reads the next entry from dir and returns it as a string. Returns nil
at the end of the stream.
d = Dir.new("testdir") array = [] of String while file = d.read array << file end array.sort # => [".", "..", "config.h"]
Repositions this directory to the first entry.
Appends a short String representation of this object which includes its class name and its object address.
class Person def initialize(@name : String, @age : Int32) end end Person.new("John", 32).to_s # => #<Person:0x10a199f20>
© 2012–2020 Manas Technology Solutions.
Licensed under the Apache License, Version 2.0.
https://crystal-lang.org/api/0.35.1/Dir.html