🗂

[Node.js] ディレクトリ配下のファイル名一覧を配列として取得したい時 fs.readdirSync()

2023/09/23に公開

概要

  • 指定したディレクトリ配下のファイル名の一覧を配列として取得するには、Node.jsのコアモジュールであるfsを用いてfs.readdirSync('ディレクトリへのパス')とします。

実践

const fs = require('fs');
const files = fs.readdirSync('ディレクトリへのパス');
console.log(files)

// [
//  'a.txt',
//  'b.txt',
//  'c.txt'
// ]

以下のようにオプションもつけることができる

const files = fs.readdirSync('ディレクトリへのパス',  { encoding:'utf8', withFileTypes:true, recursive:true }

補足:配列のソート

取得した配列は関数を利用することで順番を並び替えることができます。
ただ、以下の二つは破壊的メソッドなので、元の配列が書き換えられてしまうので注意が必要です。
※非破壊的にしたい場合はスプレッド構文を使うと良いです。

Array.prototype.sort()

昇順とは日付の場合、古いものから順番に並べていきます
数字だったら1,2,3・・・という一般的な並び方です。

array.sort();

Array.prototype.reverse()

反対に降順は日付の場合新しい日付から順番に並べていきます。
数字の場合3,2,1というカウントダウンのような並び方になります。

array.reverse();

https://zenn.dev/y__adler/articles/940d36b1be89a8

参考

https://nodejs.org/api/fs.html#fsreaddirsyncpath-options

昇順
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

降順
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse

Discussion