Node.jsメモ: 指定したパスがディレクトリかどうか調べる (Stats.isDirectory)

Node.js の標準モジュール fs が提供している fs.stat(path, callback) 関数を使用すると、指定したファイルやディレクトリの情報を表す fs.Stats オブジェクトを取得することができます。

main.js
import fs from 'node:fs';

fs.stat('/dir/path', (err, stats) => {
  if (err) throw err;
  console.log(`stats: ${JSON.stringify(stats)}`);
});

fs.Stats オブジェクトには、isDirectory() メソッドが用意されているので、これを利用して指定したパスがディレクトリかどうかを調べることができます。

fs.stat('/dir/path', (err, stats) => {
  if (err) throw err;
  if (stats.isDirectory()) {
    console.log('This is a directory');
  }
});

fs.stat の同期バージョンである fs.statSync も用意されていますが、可能な限り上記の非同期バージョンを使うように実装すべきです。 fs.statSync は戻り値で fs.Stats オブジェクトを返します。

main.js
import fs from 'node:fs';

const stats = fs.statSync('/dir/path');
if (stats.isDirectory()) {
  console.log('This is a directory');
}