Node.jsでディレクトリ下のファイル名一覧を取得してファイルに書く
こんな感じでいけた。
dirimage.js
const fs = require('fs'); //ファイルIOモジュールを読み込む const path = require('path'); //path名チェックモジュールを読み込む const dirpath = "./web/images"; //指定のディレクトリ名 const flst = fs.readdirSync(dirpath, {withFileTypes: true}) //同期でファイル読み込み .filter(dirent => dirent.isFile()).map(({name}) => name) //フォルダ除外 .filter(function(file) { return path.extname(file).toLowerCase() === '.jpg'; //拡張子jpgだけ }); fs.writeFileSync("imageList.txt", flst); //一覧をファイルに書き込む
おまけ ファイルを読み込む
const flst2 = fs.readFileSync('imageList.txt', 'utf8'); //ファイルを読み込む
おまけ2 json形式で書き込みたい時。"util" をinstall、requireする必要あり
const util = require('util'); var objlst = [ {dir: "A", fname: "a.txt"},{dir: "B", fname: "b.txt"}];//←こんなやつ fs.writeFileSync("imageList.js", 'var imageList = ' + util.inspect(objlst, {maxArrayLength: null}) , 'utf-8' ); // {maxArrayLength: null} がなかったら100個以上の時、 //「more items」てなって全部書き込んでくれない・3・
インストールしたやつ
>npm install fs >npm install path >npm install util jsonで書き込みたい時はこれも
実行
> node dirimage.js