Return a string describing this Dir
object.
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"
Repositions dir to the first entry.
d = Dir.new("testdir") d.read #=> "." d.rewind #=> #<Dir:0x401b3fb0> d.read #=> "."
Returns the current position in dir. See also Dir#seek
.
d = Dir.new("testdir") d.tell #=> 0 d.read #=> "." d.tell #=> 12
Seeks to a particular location in dir. integer must be a value returned by Dir#tell
.
d = Dir.new("testdir") #=> #<Dir:0x401b3c40> d.read #=> "." i = d.tell #=> 12 d.read #=> ".." d.seek(i) #=> #<Dir:0x401b3c40> d.read #=> ".."
Returns the current position in dir. See also Dir#seek
.
d = Dir.new("testdir") d.tell #=> 0 d.read #=> "." d.tell #=> 12
Synonym for Dir#seek
, but returns the position parameter.
d = Dir.new("testdir") #=> #<Dir:0x401b3c40> d.read #=> "." i = d.pos #=> 12 d.read #=> ".." d.pos = i #=> 12 d.read #=> ".."
Closes the directory stream. Calling this method on closed Dir
object is ignored since Ruby 2.3.
d = Dir.new("testdir") d.close #=> nil
Returns the path to the current working directory of this process as a string.
Dir.chdir("/tmp") #=> 0 Dir.getwd #=> "/tmp" Dir.pwd #=> "/tmp"
Returns the path to the current working directory of this process as a string.
Dir.chdir("/tmp") #=> 0 Dir.getwd #=> "/tmp" Dir.pwd #=> "/tmp"
Deletes the named directory. Raises a subclass of SystemCallError
if the directory isn’t empty.
Deletes the named directory. Raises a subclass of SystemCallError
if the directory isn’t empty.
Returns the home directory of the current user or the named user if given.
Expands pattern
, which is an Array of patterns or a pattern String, and returns the results as matches
or as arguments given to the block.
Note that this pattern is not a regexp, it’s closer to a shell glob. See File::fnmatch
for the meaning of the flags
parameter. Note that case sensitivity depends on your system (so File::FNM_CASEFOLD is ignored), as does the order in which the results are returned.
*
Matches any file. Can be restricted by other values in the glob. Equivalent to / .* /x
in regexp.
*
Matches all files
c*
Matches all files beginning with c
*c
Matches all files ending with c
*c*
Match all files that have c
in them (including at the beginning or end).
Note, this will not match Unix-like hidden files (dotfiles). In order to include those in the match results, you must use the File::FNM_DOTMATCH flag or something like "{*,.*}"
.
**
Matches directories recursively.
?
Matches any one character. Equivalent to /.{1}/
in regexp.
[set]
Matches any one character in set
. Behaves exactly like character sets in Regexp
, including set negation ([^a-z]
).
{p,q}
Matches either literal p
or literal q
. Equivalent to pattern alternation in regexp.
Matching literals may be more than one character in length. More than two literals may be specified.
\
Escapes the next metacharacter.
Note that this means you cannot use backslash on windows as part of a glob, i.e. Dir["c:\foo*"]
will not work, use Dir["c:/foo*"]
instead.
Examples:
Dir["config.?"] #=> ["config.h"] Dir.glob("config.?") #=> ["config.h"] Dir.glob("*.[a-z][a-z]") #=> ["main.rb"] Dir.glob("*.[^r]*") #=> ["config.h"] Dir.glob("*.{rb,h}") #=> ["main.rb", "config.h"] Dir.glob("*") #=> ["config.h", "main.rb"] Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "..", "config.h", "main.rb"] rbfiles = File.join("**", "*.rb") Dir.glob(rbfiles) #=> ["main.rb", # "lib/song.rb", # "lib/song/karaoke.rb"] libdirs = File.join("**", "lib") Dir.glob(libdirs) #=> ["lib"] librbfiles = File.join("**", "lib", "**", "*.rb") Dir.glob(librbfiles) #=> ["lib/song.rb", # "lib/song/karaoke.rb"] librbfiles = File.join("**", "lib", "*.rb") Dir.glob(librbfiles) #=> ["lib/song.rb"]
Equivalent to calling Dir.glob([
string,…],0)
.
Returns true
if the named file is a directory, false
otherwise.
Deprecated method. Don’t use.
Returns true
if the named file is an empty directory, false
if it is not a directory or non-empty.
Return the target directory where the gem is to be installed. This directory is not guaranteed to be populated.
Returns the local directory to write uri
to.
Returns the full path to the cache directory containing this spec’s cached gem.
Returns the full path to the base gem directory.
eg: /usr/local/lib/ruby/gems/1.8
Returns full path to the directory where gem’s extensions are installed.