singleton method Dir.new

new(path) -> Dir[permalink][rdoc][edit]
new(path, encoding: Encoding.find("filesystem")) -> Dir
open(path) -> Dir
open(path, encoding: Encoding.find("filesystem")) -> Dir
open(path) {|dir| ...} -> object
open(path, encoding: Encoding.find("filesystem")) {|dir| ...} -> object

path に対するディレクトリストリームをオープンして返します。

ブロックを指定して呼び出した場合は、ディレクトリストリームを引数としてブロックを実行します。ブロックの実行が終了すると、ディレクトリは自動的にクローズされます。ブロックの実行結果を返します。

[PARAM] path:
ディレクトリのパスを文字列で指定します。
[PARAM] encoding:
ディレクトリのエンコーディングを文字列か Encoding オブジェクトで指定します。省略した場合はファイルシステムのエンコーディングと同じになります。
[EXCEPTION] Errno::EXXX:
オープンに失敗した場合に発生します。

例: Dir.new

require 'tmpdir'

Dir.mktmpdir do |tmpdir|
  d = Dir.new(tmpdir)
  p d.class         # => Dir
  p d.read.encoding # => #<Encoding:UTF-8>
  d.close

  d = Dir.new(tmpdir, encoding: Encoding::UTF_8)
  p d.class         # => Dir
  p d.read.encoding # => #<Encoding:UTF-8>
  d.close
end

例: Dir.open

require 'tmpdir'

Dir.mktmpdir do |tmpdir|
  d = Dir.open(tmpdir, encoding: Encoding::UTF_8)
  p d.class         # => Dir
  p d.read.encoding # => #<Encoding:UTF-8>
  d.close

  Dir.open(tmpdir, encoding: Encoding::UTF_8) do |d|
    p d.class         # => Dir
    p d.read.encoding # => #<Encoding:UTF-8>
  end
end