File system | Node.js v20.5.1 Documentation

知らなかったのだが、Node.jsには便利なファイル一覧読み込みオプションがある。 それが withFileTypes: true オプションだ。

fsPromises.readdir(path, {
  withFileTypes: true
});

パス情報の文字列が返却されるのではなく、 fs.Dirent 形式で返される。

dirent.isDirectory()dirent.isFile() などの判定が可能だ。

const files = await fsPromises.readdir(path, {
  withFileTypes: true
}).filter((dirent) => dirent.isFile());

for await (const dirent of files)
  console.log(dirent.name);

といった具合でファイルだけ、ディレクトリだけを取得できる。