だら$ちっぷす

仕事の覚書です

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