获取文件夹内所有的文件。支持递归获取、异步或同步、过滤、返回信息处理。
Ps : 主要是最近写小工具的时候总是会遇到获取文件夹内的文件,有的要获取特定后缀的,有的要判断大小的等等等等,快烦死了.. 去网上大体一找,没有找到符合心意的,索性自己搞了。 不求多完美,最起码满足我就好。。。哈哈
npm install dirfile
var dirfile = require('dirfile');
var path = require('path');
//扫描文件夹路径
var dirPath = 'd:/folder/',
//是否异步获取
async = true,
//是否递归查询子级目录
isDeep = true;
//# 同步获取文件
dirfile(dirPath,async,isDeep,function(filePath,stat){
return path.extname(filePath) == '.java';
},function(filePath,stat){
return {
name : path.basename(filePath),
filePath : filePath
}
})
.then(function(fileList){
console.log(fileList);//打印文件列表信息
})
.catch(function(err){
console.log(err);
})
//使用同步获取
async = false;
var fileList2 = dirfile(dirPath,async,isDeep,function(filePath,stat){
return path.extname(filePath) == '.java';
},function(filePath,stat){
return filePath;
})
console.log(fileList2);//打印输出即可
//简单调用
dirfile(dirPath)
.then(function(fileList){
console.log(fileList);
})
promise
函数,通过 then
调用。如果为false ,则直接同步获取,直接返回获得文件列表。(默认为true
)true
)filePath
stat
. 文件路径以及文件状态信息,需要返回true/false
. {filePath : filePath}
。 可自定义返回值,提供参数filePath
stat
.参数为向前补充的,第一个参数为dirPath
保持不变,如果有两个则第二个参数为 infoFn
,如果有三个则pushFn
infoFn
,类似这样。
简单做了一个测试,异步要比同步快一倍左右,当然都是小文件,大文件可能差别更多。没有进行细致的测试。
MIT
https://github.com/chrunlee/dirfile
转载请注明出处: https://chrunlee.cn/article/nodejs-npm-dirfile-module.html