node.jsでディレクトリ内のファイル一覧を取得する

ディレクトリ内のファイル一覧を取得するには、次の関数を使用します。

fs.readdirSync(path[, options])

fs.readdirSync(path[, options])は、引数pathにディレクトリのパスを取り、ファイル名の配列を返します。

オプションの引数optionsは、ファイル名の文字コードを指定します。初期値は’utf8’です。

const fs = require('fs');

// カレントディレクトリ
const path = process.cwd();
// ファイル名の一覧
const filenames = fs.readdirSync(path);
console.log(filenames);

次のコードは、指定したディレクトリ内のすべてのファイルとディレクトリを出力します。

const fs = require('fs');
const path = require('path');

function printAllFiles(dir) {
  const filenames = fs.readdirSync(dir);
  filenames.forEach((filename) => {
    const fullPath = path.join(dir, filename);
    const stats = fs.statSync(fullPath);
    if (stats.isFile()) {
      console.log(fullPath);
    } else if (stats.isDirectory()) {
      printAllFiles(fullPath);
    }
  });
}

// カレントディレクトリ
const dir = process.cwd();
printAllFiles(dir);

fs.readdir(path[, options], callback)

fs.readdirSync(path[, options])は、引数pathにディレクトリのパスを指定します。

オプションの引数optionsは、ファイル名の文字コードを指定します。初期値は’utf8’です。

コールバック関数callbackは、引数にエラーオブジェクトとファイル名の一覧を受け取ります。

次のコードはカレントディレクトリのファイル一覧を出力します。

const fs = require('fs');

// カレントディレクトリ
const path = process.cwd();

fs.readdir(path, (err, files) => {
  console.log(files);
});

コメント

  1. fs.readdirSync(path[, options])を使ってみたんですが、
    Consoleで 以下のエラーが発生して動作しません。どうすればよいでしょうか?

    Uncaught ReferenceError: require is not defined

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください