如何使用node.js扫描整个目录树?

时间:2012-08-19 02:43:35

标签: node.js

我常常想要扫描整个目录树(目录及其中的所有内容,包括文件,子目录和那些子目录内容,以及它们的子目录内容等)。

如何通过节点实现这一目标?要求是,它应该是异步的,以利用超快速非阻塞IO - 并且在一次处理太多文件时不会崩溃。

3 个答案:

答案 0 :(得分:1)

- 我在2017年更新了这个答案,以了解自2012年以来取得的进展 -

结束创建这些来完成它:

我还创建了这个轻量级且超快的:

答案 1 :(得分:1)

如果您想实现这一点,您可以使用模块 npm dree。它返回一个描述目录树的 json,它允许您还指定一个 fileCallback 和一个 dirCallback,因此您可以这样做:

代码如下:

const dree = require('dree');

const fileCb = function(file) {
    // do what you want
}
const dirCb = function(directory) {
    // do what you want
}

dree.scan('path-to-directory', { extensions: [ 'html', 'js' ] }, fileCb, dirCb);

答案 2 :(得分:0)

有一个NPM模块可以返回目录树的对象或字符串表示形式:

npm dree

它还允许您指定fileCallback和dirCallback,因此您可以执行以下操作:

代码如下:

const dree = require('dree');

const fileCb = function(file) {
    // do what you want
}
const dirCb = function(directory) {
    // do what you want
}

dree.scan('path-to-directory', { extensions: [ 'html', 'js' ] }, fileCb, dirCb);

console.log(fileNames); // All the html and js files inside the given folder and its subfolders