class Dir
Overview
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. See also File
.
The directory used in these examples contains the two regular files (config.h and main.rb), the parent directory (..), and the directory itself (.).
Included Modules
Defined in:
dir.crdir/glob.cr
Class Method Summary
- .[](*patterns) : Array(String)
- .[](patterns : Enumerable(String)) : Array(String)
-
.cd(path)
Changes the current working directory of the process to the given string.
-
.cd(path, &block)
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.
-
.current : String
Returns the current working directory.
-
.entries(dirname) : Array(String)
Returns an array containing all of the filenames in the given directory.
-
.exists?(path) : Bool
Returns true if the given path exists and is a directory
-
.foreach(dirname, &block)
Calls the block once for each entry in the named directory, passing the filename of each entry as a parameter to the block.
- .glob(patterns : Enumerable(String), &block)
- .glob(*patterns, &block)
- .glob(*patterns) : Array(String)
- .glob(patterns : Enumerable(String)) : Array(String)
-
.mkdir(path, mode = 511)
Creates a new directory at the given path.
-
.mkdir_p(path, mode = 511)
Creates a new directory at the given path, including any non-existing intermediate directories.
-
.new(path)
Returns a new directory object for the named directory.
-
.open(path) : self
Alias for
.new(path)
-
.open(path, &block)
Opens a directory and yields it, closing it at the end of the block.
-
.rmdir(path)
Removes the directory at the given path.
Instance Method Summary
-
#close
Closes the directory stream.
- #each
-
#each(&block)
Calls the block once for each entry in this directory, passing the filename of each entry as a parameter to the block.
- #path : String
-
#read
Reads the next entry from dir and returns it as a string.
-
#rewind
Repositions this directory to the first entry.
- #to_s(io)
Instance methods inherited from module Iterable
cyclecycle(n) cycle, each each, each_cons(count : Int) each_cons, each_slice(count : Int) each_slice, each_with_index(offset = 0) each_with_index, each_with_object(obj) each_with_object
Instance methods inherited from module Enumerable({"T", T})
all?all?(&block) all?, any?
any?(&block) any?, compact_map(&block) compact_map, count(item)
count(&block) count, cycle(&block)
cycle(n, &block) cycle, each(&block : T -> _) each, each_cons(count : Int, &block) each_cons, each_slice(count : Int, &block) each_slice, each_with_index(offset = 0, &block) each_with_index, each_with_object(obj, &block) each_with_object, find(if_none = nil, &block) find, first
first(count : Int) first, first? first?, flat_map(&block : T -> Array(U)) forall U flat_map, grep(pattern) grep, group_by(&block : T -> U) forall U group_by, in_groups_of(size : Int, filled_up_with : U = nil, &block) forall U
in_groups_of(size : Int, filled_up_with : U = nil) forall U in_groups_of, includes?(obj) includes?, index(obj)
index(&block) index, index_by(&block : T -> U) forall U index_by, join(separator = "")
join(separator, io, &block)
join(separator = "", &block)
join(separator, io) join, map(&block : T -> U) forall U map, map_with_index(&block : T, Int32 -> U) map_with_index, max max, max? max?, max_by(&block : T -> U) forall U max_by, max_by?(&block : T -> U) forall U max_by?, max_of(&block : T -> U) forall U max_of, max_of?(&block : T -> U) forall U max_of?, min min, min? min?, min_by(&block : T -> U) forall U min_by, min_by?(&block : T -> U) forall U min_by?, min_of(&block : T -> U) forall U min_of, min_of?(&block : T -> U) forall U min_of?, minmax minmax, minmax? minmax?, minmax_by(&block : T -> U) forall U minmax_by, minmax_by?(&block : T -> U) forall U minmax_by?, minmax_of(&block : T -> U) forall U minmax_of, minmax_of?(&block : T -> U) forall U minmax_of?, none?(&block)
none? none?, one?(&block) one?, partition(&block) partition, product(initial : Number, &block)
product
product(initial : Number)
product(&block) product, reduce(memo, &block)
reduce(&block) reduce, reject(&block : T -> ) reject, select(&block : T -> ) select, size size, skip(count : Int) skip, skip_while(&block) skip_while, sum
sum(initial)
sum(&block)
sum(initial, &block) sum, take_while(&block) take_while, to_a to_a, to_h to_h, to_set to_set
Instance methods inherited from class Reference
==(other)==(other : self) ==, dup dup, hash hash, inspect(io : IO) : Nil inspect, object_id : UInt64 object_id, same?(other : Reference)
same?(other : Nil) same?, to_s(io : IO) : Nil to_s
Instance methods inherited from class Object
!=(other)
!=,
!~(other)
!~,
==(other)
==,
===(other)===(other : YAML::Any)
===(other : JSON::Any) ===, =~(other) =~, class class, crystal_type_id crystal_type_id, dup dup, hash hash, inspect(io : IO)
inspect inspect, itself itself, not_nil! not_nil!, tap(&block) tap, to_json to_json, to_pretty_json(indent : String = " ")
to_pretty_json(io : IO, indent : String = " ") to_pretty_json, to_s
to_s(io : IO) to_s, to_yaml
to_yaml(io : IO) to_yaml, try(&block) try
Class methods inherited from class Object
==(other : Class)
==,
===(other)
===,
cast(other) : self
cast,
clone
clone,
dup
dup,
from_json(string_or_io) : selffrom_json(string_or_io, root : String) : self from_json, from_yaml(string : String) : self from_yaml, hash hash, inspect(io) inspect, name : String name, nilable? nilable?, to_s(io) to_s, |(other : U.class) forall U |
Class Method Detail
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.
Returns an array containing all of the filenames in the given directory.
Returns true if the given path exists and is a directory
Calls the block once for each entry in the named directory, passing the filename of each entry as a parameter to the block.
Creates a new directory at the given path. The linux-style permission mode can be specified, with a default of 777 (0o777).
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.
Instance Method Detail
Calls the block once for each entry in this directory, passing the filename of each entry as a parameter to the block.
d = Dir.new("testdir")
d.each { |x| puts "Got #{x}" }
produces:
Got .
Got ..
Got config.h
Got main.rb
Reads the next entry from dir and returns it as a string. Returns nil at the end of the stream.
d = Dir.new("testdir")
d.read # => "."
d.read # => ".."
d.read # => "config.h"