Node.jsでファイル操作をマスターしよう!ディレクトリ内のファイル名のリストを取得する方法
Node.jsでディレクトリ内のファイル名のリストを取得する方法
方法 1: fs.readdirSync()を使用する
fs.readdirSync()
は、指定したディレクトリ内のファイル名のリストを取得する同期的な関数です。この関数は、ファイル名の配列を返します。
const fs = require('fs');
const directoryPath = './path/to/directory';
const files = fs.readdirSync(directoryPath);
console.log(files);
このコードは、./path/to/directory
ディレクトリ内のすべてのファイル名のリストを出力します。
const fs = require('fs');
const directoryPath = './path/to/directory';
fs.readdir(directoryPath, (err, files) => {
if (err) {
console.error(err);
return;
}
console.log(files);
});
その他のオプション
上記の方法に加えて、以下のオプションも利用できます。
fs.promises.readdir()
: 非同期的な処理を Promise を使って処理したい場合に使用できます。glob
モジュール : ワイルドカードを使用してファイル名を取得したい場合に使用できます。
Node.jsでディレクトリ内のファイル名のリストを取得するには、いくつかの方法があります。どの方法を使用するかは、あなたのニーズと好みによって異なります。
fs.readdirSync()を使用する
const fs = require('fs');
const directoryPath = './path/to/directory';
const files = fs.readdirSync(directoryPath);
console.log(files);
fs.readdir()を使用する
const fs = require('fs');
const directoryPath = './path/to/directory';
fs.readdir(directoryPath, (err, files) => {
if (err) {
console.error(err);
return;
}
console.log(files);
});
fs.promises.readdir()を使用する
const fs = require('fs').promises;
const directoryPath = './path/to/directory';
const files = await fs.readdir(directoryPath);
console.log(files);
glob モジュールを使用する
const glob = require('glob');
const directoryPath = './path/to/directory';
const files = glob.sync('**/*.js', {
cwd: directoryPath,
});
console.log(files);
他の方法
readline
モジュールを使用して、ディレクトリ内のファイルを逐次的に読み込むことができます。
const fs = require('fs');
const readline = require('readline');
const directoryPath = './path/to/directory';
const rl = readline.createInterface({
input: fs.createReadStream(directoryPath),
});
rl.on('line', (line) => {
console.log(line);
});
const walk = require('walk');
const directoryPath = './path/to/directory';
const walker = walk.walk(directoryPath);
walker.on('file', (file, stat) => {
console.log(file);
});
javascript node.js directory-listing