一尘不染

获取目录nodejs中的所有目录

node.js

我希望这将是一件简单的事情,但是我找不到任何能够做到这一点的东西。

我只想获取给定文件夹/目录中的所有文件夹/目录。

因此,例如:

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

我希望得到一个数组:

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

或者上面的路径,如果那是它的服务方式…

那么已经有什么可以做以上的事情吗?


阅读 455

收藏
2020-07-07

共1个答案

一尘不染

这是此答案的较短的同步版本,它可以列出当前目录中的所有目录(是否隐藏):

const { lstatSync, readdirSync } = require('fs')
const { join } = require('path')

const isDirectory = source => lstatSync(source).isDirectory()
const getDirectories = source =>
  readdirSync(source).map(name => join(source, name)).filter(isDirectory)

节点10.10.0+的更新

我们可以使用的新withFileTypes选项readdirSync来跳过额外的lstatSync通话:

const { readdirSync } = require('fs')

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