我常常想要扫描整个目录树(目录及其中的所有内容,包括文件,子目录和那些子目录内容,以及它们的子目录内容等)。
如何通过节点实现这一目标?要求是,它应该是异步的,以利用超快速非阻塞IO - 并且在一次处理太多文件时不会崩溃。
答案 0 :(得分:1)
- 我在2017年更新了这个答案,以了解自2012年以来取得的进展 -
结束创建这些来完成它:
https://github.com/bevry/safefs - 现在使用https://npmjs.org/package/graceful-fs(之前不存在)
https://github.com/bevry/scandirectory - 现在还有很多像这样的项目
我还创建了这个轻量级且超快的:
答案 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模块可以返回目录树的对象或字符串表示形式:
它还允许您指定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