nodejs 包dirfile同步或异步获取文件夹内文件,支持过滤

nodejs 包dirfile同步或异步获取文件夹内文件,支持过滤

月光魔力鸭

2019-06-29 08:22 阅读 1062 喜欢 0 dirfile npm module 同步/异步

dirfile

获取文件夹内所有的文件。支持递归获取、异步或同步、过滤、返回信息处理。

Ps : 主要是最近写小工具的时候总是会遇到获取文件夹内的文件,有的要获取特定后缀的,有的要判断大小的等等等等,快烦死了.. 去网上大体一找,没有找到符合心意的,索性自己搞了。 不求多完美,最起码满足我就好。。。哈哈

来啊来啊

install

npm install dirfile

use

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);
})

参数

参数为向前补充的,第一个参数为dirPath 保持不变,如果有两个则第二个参数为 infoFn ,如果有三个则pushFn infoFn ,类似这样。

说明

简单做了一个测试,异步要比同步快一倍左右,当然都是小文件,大文件可能差别更多。没有进行细致的测试。

License

MIT

github

undefined

npm

undefined

转载请注明出处: https://chrunlee.cn/article/nodejs-npm-dirfile-module.html


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
前几天给朋友帮忙,想要一个一模一样的网站...自告奋勇去帮忙.. 结果发现之前一直没处理过类似的情况,虽然也写过爬虫,不过看了下网站,也不算麻烦。于是简单实现了这个自动抓站的功能,最终整理成为一个自动抓站的工具,能省很多的事情。
从豆瓣转到网易云后,发现了不少好听的歌曲,然鹅..当我想把这些歌拿下来扔车上听的时候发现竟然不允许下载..能听不能下?这不科学,作为一名程序猿,必然要迎难而上啊.
有一个需求,需要公司的LOGO信息,但是没有,只有公司的名字,想着先生成个默认的(本来是可以通过前端判断然后合成的..但是不想改小程序了),于是开始准备处理。
也不知道咋回事 ... 哈哈,忽然想研究下磁力网站,其实并不是很想懂里面的原理,只是搞不明白他们的资源是从哪里来的..很是纳闷?
thinkjs框架使用ueditor记录。
在通过axios读取页面的时候,经常会碰到gbk的编码,如果不进行转化的话,在获取信息或读取上都会很麻烦。
在公司报销的时候虽然已经有了电子发票,但是贴票还是需要将发票打印出来贴上,如果只有一两张也就算了,如果几十张.. 呵呵,光胶水我都不够用的,找了好多工具、在线版本都不合心意,烦死,自己做个自己喜欢的吧。
最近一直在围绕着我的小电脑在转,基本都是这方面的问题。在没有公网IP的情况下,这个问题就是我怎么才能通过域名访问到我家中的服务器。