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

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

月光魔力鸭

2019-06-29 08:22 阅读 819 喜欢 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

https://github.com/chrunlee/dirfile

npm

https://www.npmjs.com/package/dirfile

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


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
发布自己的nodejs应用后,需要进行管理,目前一般都pm2来进行管理,这里记录下常用的命令。
介绍几个日常开发中常用的几个小工具: anywhere / anywhere-auth / watchlessc / changeext
也不知道咋回事 ... 哈哈,忽然想研究下磁力网站,其实并不是很想懂里面的原理,只是搞不明白他们的资源是从哪里来的..很是纳闷?
通过pm2来实现nodejs应用的集群,不过我之前没做session共享,导致.. 登录不上啊 啊啊啊,无奈,又重新对redis进行了集成。
在使用puppeteer 跳转窗口的时候,发现waitForNavigator 并不起作用,最后找到通过browser 获得page 并继续操作。
使用nodejs连接ftp,进行ftp的操作,包括列表、上传、下载以及速率等。
最近有接触到针对二维码进行识别的功能,然后对图片进行位置纠正、二维码扫描,并将数据进行整理。以下是通过nodejs做的,相对简单一些,没有太过严格,识别率也不是很高大约80%左右
分享一个自动抓取静态站资源的小工具,可以在抓取某个静态站点的时候方便很多,尤其是如果页面比较多的话,会很难受,而且会自动将资源进行归类,如果一个页面一个页面的保存的话,那就比较费劲了。