如何获取 Node.js 目录中存在的所有文件的名称列表?

新手上路,请多包涵

我正在尝试使用 Node.js 获取目录中存在的所有文件的名称列表。我想要一个文件名数组的输出。我怎样才能做到这一点?

原文由 resopollution 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 724
2 个回答

您可以使用 fs.readdirfs.readdirSync 方法。 fs 包含在 Node.js 核心中,因此无需安装任何东西。

fs.readdir

 const testFolder = './tests/';
 const fs = require('fs');

 fs.readdir(testFolder, (err, files) => {
 files.forEach(file => {
 console.log(file);
 });
 });

fs.readdirSync

 const testFolder = './tests/';
 const fs = require('fs');

 fs.readdirSync(testFolder).forEach(file => {
 console.log(file);
 });

这两种方法的区别在于,第一种是异步的,所以你必须提供一个回调函数,在读取过程结束时执行。

第二个是同步的,它将返回文件名数组,但它将停止您的代码的任何进一步执行,直到读取过程结束。

原文由 Christian C. Salvadó 发布,翻译遵循 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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题