技術とかの雑なToday I Learnedメモ

contents内部のディレクトリ構造を変更したい

ディレクトリ構造を変更している

今は記事を contents というディレクトリにすべて突っ込んでいて、VS Code でエクスプローラーを表示しているときにファイルの数が一日 1 つずつ増えてとんでもないことになっているので、contents/2021-07/25.mdみたいな形式にして保存したくて調べてやっているがまだ終わっていない。

まず、特定のディレクトリの直下にあるディレクトリを探すというのをやらなくてはいけないので色々調べたところ、fs.readdirSyncwithFileType: 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 : []
})

これでdirNames2021-06とか2021-07みたいな名前が渡されて、それらをさらにfs.readdirSyncに渡せばファイル全部が取得できる気がしていたんだけど……。

明日中(ていうか今日中)にエラーを解決して実装してしまいたい。