ディレクトリ構造を変更している
今は記事を contents というディレクトリにすべて突っ込んでいて、VS Code でエクスプローラーを表示しているときにファイルの数が一日 1 つずつ増えてとんでもないことになっているので、contents/2021-07/25.md
みたいな形式にして保存したくて調べてやっているがまだ終わっていない。
まず、特定のディレクトリの直下にあるディレクトリを探すというのをやらなくてはいけないので色々調べたところ、fs.readdirSync
にwithFileType: true
というオプションを渡すとfs.Dirent
というオブジェクトの配列が返ってくることが分かった。
特定ディレクトリ配下のファイルのみ(またはディレクトリのみ)を取得(Node.js v10.10 以降版) - Qiita
Node.js で高速にファイル一覧を取得する fs.readdir の withFileTypes オプション - Qiita
File system | Node.js v16.5.0 Documentation
これらを参考に書き直してみてるんだけど、なんかエラーが出ていてそこで今止まっている。
const dirents = fs.readdirSync(postsDir, { withFileTypes: true })
const dirNames: string[] = dirents.flatMap((dirent) => {
return dirent.isDirectory() ? dirent.name : []
})
これでdirNames
に2021-06
とか2021-07
みたいな名前が渡されて、それらをさらにfs.readdirSync
に渡せばファイル全部が取得できる気がしていたんだけど……。
明日中(ていうか今日中)にエラーを解決して実装してしまいたい。