End of Life Ruby 3.2 has reached end of life and gets no more fixes. Switch to Ruby 4.0 →
class method
Dir.foreach
Dir.foreach( dirname ) {| filename | block } → nil
Dir.foreach( dirname, encoding: enc ) {| filename | block } → nil
Dir.foreach( dirname ) → an_enumerator
Dir.foreach( dirname, encoding: enc ) → an_enumerator
dir.c
View on GitHub ↗
static VALUE
dir_foreach(int argc, VALUE *argv, VALUE io)
{
VALUE dir;
RETURN_ENUMERATOR(io, argc, argv);
dir = dir_open_dir(argc, argv);
rb_ensure(dir_each, dir, dir_close, dir);
return Qnil;
}
Calls the block once for each entry in the named directory, passing the filename of each entry as a parameter to the block.
If no block is given, an enumerator is returned instead.
Example
Dir.foreach("testdir") {|x| puts "Got #{x}" }
produces:
Got . Got .. Got config.h Got main.rb