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