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 (.
).
First, what's elsewhere. Class Dir:
Inherits from class Object.
Includes module Enumerable, which provides dozens of additional methods.
Here, class Dir provides methods that are useful for:
close: Closes the directory stream for self
.
pos=: Sets the position in the directory stream for self
.
read: Reads and returns the next entry in the directory stream for self
.
rewind: Sets the position in the directory stream for self
to the first entry.
seek: Sets the position in the directory stream for self
the entry at the given offset.
::chdir: Changes the working directory of the current process to the given directory.
::chroot: Changes the file-system root for the current process to the given directory.
::[]: Same as ::glob without the ability to pass flags.
::children: Returns an array of names of the children (both files and directories) of the given directory, but not including .
or ..
.
::empty?: Returns whether the given path is an empty directory.
::entries: Returns an array of names of the children (both files and directories) of the given directory, including .
and ..
.
::exist?: Returns whether the given path is a directory.
::getwd (aliased as pwd): Returns the path to the current working directory.
::glob: Returns an array of file paths matching the given pattern and flags.
::home: Returns the home directory path for a given user or the current user.
children: Returns an array of names of the children (both files and directories) of self
, but not including .
or ..
.
fileno: Returns the integer file descriptor for self
.
path (aliased as to_path): Returns the path used to create self
.
tell (aliased as pos): Returns the integer position in the directory stream for self
.
::each_child: Calls the given block with each entry in the given directory, but not including .
or ..
.
::foreach: Calls the given block with each entry in the given directory, including .
and ..
.
each: Calls the given block with each entry in self
, including .
and ..
.
each_child: Calls the given block with each entry in self
, but not including .
or ..
.
::mkdir: Creates a directory at the given path, with optional permissions.
::new: Returns a new Dir for the given path, with optional encoding.
::open: Same as ::new, but if a block is given, yields the Dir to the block, closing it upon block exit.
::unlink (aliased as ::delete and ::rmdir): Removes the given directory.
inspect: Returns a string description of self
.