node.js 指定したディレクトリの配下にあるディレクトリやフォルダを取得する

node.js 指定したディレクトリの配下にあるディレクトリやフォルダを取得する

node.js で、モジュールfsのreaddirを使用して、指定したディレクトリの配下にあるディレクトリやフォルダを取得するサンプルコードを記述してます。nodeのバージョンは、14.15.1です。

環境

  • OS  CentOS Stream release 8
  • node V14.15.1
  • npm 6.14.7

readdir使い方

pathを使用すれば、指定したディレクトリの配下にあるディレクトリやフォルダを取得することが可能です。

const fs = require('fs');

fs.readdir('パスを指定', function (e, result) {console.log(result)});

以下は、path.joinを使用して、パスを結合するサンプルコードとなります。
ここではアロー関数と三項演算子を使用して記述してます。

実行ディレクトリ構成

const fs = require('fs');

// カレントディレクトリのディレクトリやフォルダを取得
fs.readdir('./', (e, result) =>  (e)  ? console.error(e): console.log(result));

実行結果

[ 'dammy.txt', 'sample', 'sample.js', 'sample2' ]

ファイルもディレクトリもない場合は、空が返ってきます。

[]

存在しないディレクトリを選択するとエラーとなります。

const fs = require('fs');

fs.readdir('./hoge', (e, result) =>  (e)  ? console.error(e): console.log(result));

実行結果

[Error: ENOENT: no such file or directory, scandir './hoge'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'scandir',
  path: './hoge'
}