Skip to content

Commit b070d02

Browse files
committed
doc: clarify how fs.Dirent file types are determined
The file type of a directory entry returned by fs.readdir() or fs.opendir() is the type reported by the operating system's directory listing. Node.js falls back to lstat() only when the reported type is unknown, and some file systems may report a type that differs from what lstat() would return. Document this in the fs.Dirent class introduction, with fs.lstat() as the accurate alternative. Fixes: #30646 Signed-off-by: Julian Soreavis <julian.soreavis@gmail.com>
1 parent cf882a7 commit b070d02

1 file changed

Lines changed: 7 additions & 0 deletions

File tree

doc/api/fs.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7336,6 +7336,13 @@ Additionally, when [`fs.readdir()`][] or [`fs.readdirSync()`][] is called with
73367336
the `withFileTypes` option set to `true`, the resulting array is filled with
73377337
{fs.Dirent} objects, rather than strings or {Buffer}s.
73387338
7339+
When a directory is read, such as with [`fs.readdir()`][] or
7340+
[`fs.opendir()`][], the file type of each entry is the type reported by the
7341+
operating system and may depend on the file system; for example, some file
7342+
systems may report a type that differs from what [`fs.lstat()`][] returns.
7343+
Node.js calls [`fs.lstat()`][] on such an entry only when the reported type
7344+
is unknown. Use [`fs.lstat()`][] when an accurate file type is required.
7345+
73397346
#### `dirent.isBlockDevice()`
73407347
73417348
<!-- YAML

0 commit comments

Comments
 (0)