node.jsでフォルダのファイル一覧の取得

node.js でフォルダ、ディレクトリのファイル一覧を取得する方法です。

ファイル操作に関する公式モジュール fs があるのでそれを使います。

参考:File System(公式ドキュメント)

フォルダのファイル一覧の取得

//ファイル一覧取得関数
function readdir(dir) {
  fs.readdir(dir, function (err, files) {
    if (err) {
        throw err;
    }

    //ここに処理
    console.log(files);
  });
}

//使い方
readdir("test");

非同期での処理になるので関数内で処理を実行するのが楽です。

dir にフォルダ、ディレクトリを指定してあげることでその階層のファイルとフォルダの名前を取得してくれます。

file に取得した一覧が配列で入ります。一覧はただ単に名前の文字列を取得するだけなので、そのファイルに何らかの処理を加えたい場合は、別のメソッドを使って名前で検索、処理してあげれば OK です。

配列としての取得となるので、配列系のメソッドを使えば色々操作が可能です。ちなみに配列にファイル、フォルダ名が入る順番はアルファベット順なようです。環境によって変わる可能性があるので、順番が重要な場合は sort メソッドなどを使い整理してから使ったほうが安全です。

まとめ

配列として取得できるのでその後の操作が楽にできます。node.js でも基本通常の JavaScript と同じ配列のメソッドが使えるので、いらないものを削ったり検索をかけたり色々可能です。