1. ホーム
  2. node.js

[解決済み] nodejsディレクトリ内の全ディレクトリの取得

2022-03-16 11:19:48

質問

簡単なことなので期待していたのですが、そのようなことができるものが見当たりません。

あるフォルダ/ディレクトリ内のすべてのフォルダ/ディレクトリを取得したいだけなのですが。

だから例えば

<MyFolder>
|- SomeFolder
|- SomeOtherFolder
|- SomeFile.txt
|- SomeOtherFile.txt
|- x-directory

の配列が得られると予想されます。

["SomeFolder", "SomeOtherFolder", "x-directory"]

あるいは、上記をパス付きで提供した場合...

では、上記のようなことをするためのものはすでに存在するのでしょうか?

解決方法は?

約束

const { promises: { readdir } } = require('fs')

const getDirectories = async source =>
  (await readdir(source, { withFileTypes: true }))
    .filter(dirent => dirent.isDirectory())
    .map(dirent => dirent.name)

コールバック

const { readdir } = require('fs')

const getDirectories = (source, callback) =>
  readdir(source, { withFileTypes: true }, (err, files) => {
    if (err) {
      callback(err)
    } else {
      callback(
        files
          .filter(dirent => dirent.isDirectory())
          .map(dirent => dirent.name)
      )
    }
  })

シンクロナス・リターン

const { readdirSync } = require('fs')

const getDirectories = source =>
  readdirSync(source, { withFileTypes: true })
    .filter(dirent => dirent.isDirectory())
    .map(dirent => dirent.name)