我正在尝试使用 Node.js 获取目录中存在的所有文件的名称列表。我想要一个文件名数组的输出。我怎样才能做到这一点?
原文由 resopollution 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在尝试使用 Node.js 获取目录中存在的所有文件的名称列表。我想要一个文件名数组的输出。我怎样才能做到这一点?
原文由 resopollution 发布,翻译遵循 CC BY-SA 4.0 许可协议
IMO 执行此类任务最方便的方法是使用 glob 工具。这是 node.js 的 glob 包。安装
npm install glob
然后使用通配符匹配文件名(示例取自包的 网站)
var glob = require("glob")
// options is optional
glob("**/*.js", options, function (er, files) {
// files is an array of filenames.
// If the `nonull` option is set, and nothing
// was found, then files is ["**/*.js"]
// er is an error object or null.
})
如果您打算使用 globby ,这里是一个示例,用于查找当前文件夹下的任何 xml 文件
var globby = require('globby');
const paths = await globby("**/*.xml");
原文由 KFL 发布,翻译遵循 CC BY-SA 4.0 许可协议
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
4 回答2.4k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
您可以使用
fs.readdir
或fs.readdirSync
方法。fs
包含在 Node.js 核心中,因此无需安装任何东西。fs.readdir
fs.readdirSync
这两种方法的区别在于,第一种是异步的,所以你必须提供一个回调函数,在读取过程结束时执行。
第二个是同步的,它将返回文件名数组,但它将停止您的代码的任何进一步执行,直到读取过程结束。