Skip to main content

Dir

class Dir
implements AsyncIterable<Dirent>

A class representing a directory stream.

Created by opendir, opendirSync, or fsPromises.opendir().

import { opendir } from 'node:fs/promises';

try {
  const dir = await opendir('./');
  for await (const dirent of dir)
    console.log(dirent.name);
} catch (err) {
  console.error(err);
}

When using the async iterator, the fs.Dir object will be automatically closed after the iterator exits.

Properties Jump to heading

readonly
Jump to headingpath: string

The read-only path of this directory as was provided to opendir,opendirSync, or fsPromises.opendir().

Asynchronously iterates over the directory via readdir(3) until all entries have been read.

Jump to headingclose(): Promise<void>

Asynchronously close the directory's underlying resource handle. Subsequent reads will result in errors.

A promise is returned that will be fulfilled after the resource has been closed.

Synchronously close the directory's underlying resource handle. Subsequent reads will result in errors.

Jump to headingread(): Promise<Dirent | null>

Asynchronously read the next directory entry via readdir(3) as an fs.Dirent.

A promise is returned that will be fulfilled with an fs.Dirent, or null if there are no more directory entries to read.

Directory entries returned by this function are in no particular order as provided by the operating system's underlying directory mechanisms. Entries added or removed while iterating over the directory might not be included in the iteration results.

Jump to headingread(cb: (
err: ErrnoException | null,
dirEnt: Dirent | null,
) => void
): void

Synchronously read the next directory entry as an fs.Dirent. See the POSIX readdir(3) documentation for more detail.

If there are no more directory entries to read, null will be returned.

Directory entries returned by this function are in no particular order as provided by the operating system's underlying directory mechanisms. Entries added or removed while iterating over the directory might not be included in the iteration results.

Back to top