Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9038

【Node.js v11】ディレクトリ内のファイルパスを再帰的に取得するワンライナー

$
0
0

ディレクトリ内全てのファイル一覧を取得するというありふれた処理ですがたまたまワンライナーを思いついたのでメモ代わりに紹介します
同期メソッドなので使いどころには注意してください

JavaScript

constfs=require('fs')constlistFiles=(dir)=>fs.readdirSync(dir,{withFileTypes:true}).flatMap(dirent=>dirent.isFile()?[`${dir}/${dirent.name}`]:listFiles(`${dir}/${dirent.name}`))console.log(listFiles('hoge/fuga'))

fs.readdirに withFileTypes: trueオプションが追加されてたんですね、最近知りました
https://nodejs.org/api/fs.html#fs_fs_readdirsync_path_options

${dir}/${dirent.name}を2回書くのは良くないので実際に使う場合はワンライナーにこだわらず変数に入れるのがいいです
flatMapを使ってるのでNode.js v11以上じゃないと動きません

TypeScript

importfsfrom'fs'constlistFiles=(dir:string):string[]=>fs.readdirSync(dir,{withFileTypes:true}).flatMap(dirent=>dirent.isFile()?[`${dir}/${dirent.name}`]:listFiles(`${dir}/${dirent.name}`))console.log(listFiles('hoge/fuga'))

requireをimportに変えて、引数と返り値に型を指定しただけです

普段はTypeScriptのフレームワークをOSSで開発してるのでTwitterも見ていってください
Twitter@m_mitsuhide


Viewing all articles
Browse latest Browse all 9038

Trending Articles