javascript - 递归读取Node JS中的目录

标签 javascript node.js

我对服务器端编程和 NodeJS 很陌生

我需要递归读取目录以获取该目录中每个文件的文件名(应返回一个文件名数组(相对路径))

我认为这是很常见的事情,所以我希望有人能分享代码。或者只是告诉我正确的调用方法。 谢谢

最佳答案

这是我的第一次尝试。

fs = require('fs');

function getDirectoryFiles(directory, callback) {
  fs.readdir(directory, function(err, files) {
    files.forEach(function(file){
      fs.stat(directory + '/' + file, function(err, stats) {
        if(stats.isFile()) {
          callback(directory + '/' + file);
        }
        if(stats.isDirectory()) {
          getDirectoryFiles(directory + '/' + file, callback);
        }
      });
    });
  });
}

getDirectoryFiles('.', function(file_with_path) {
  console.log(file_with_path);
});

当然,您可以将值推送到全局数组中,而不是回调处理函数中的 console.log

关于javascript - 递归读取Node JS中的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6603589/

相关文章:

javascript - 创建一个简单的 JavaScript 连接器

javascript - 在 JavaScript 中,为什么不存在的 "window"属性值在这两种情况下不同?

javascript - 合并两个可观察量,仅当其中一个可观察量完成而另一个未发出,或者两个可观察量都发出时才完成

node.js - 无法从 npm 安装最新的软件包版本

javascript - 如何使用 Node.js 中的请求库获取原始 HTTP 消息体?

javascript - 匹配 "snnnoooowww"到 "snow"的正则表达式

javascript - 在跨度中减去数字

javascript - 使用 Sequelize 将另一个表中的属性作为一个字段包含在内

node.js - npm install serialport是否需要VS?

javascript - 带有 css 的 jade 中的按钮不起作用