nodejs 遍历目录

const path = require('path')
const fs = require('fs')
// 服务器端的jquery,用于选择字符 eg: $('.title').text(),这里没用到,写爬虫可以用到
// const chreeio = require('cheerio') // G:\webproject\component
const basePath = 'G:/webproject/component'function mapDir(dir, callback, finish) {fs.readdir(dir, function(err, files) {if (err) {console.error(err)return}files.forEach((filename, index) => {let pathname = path.join(dir, filename)fs.stat(pathname, (err, stats) => { // 读取文件信息if (err) {console.log('获取文件stats失败')return}if (stats.isDirectory()) {mapDir(pathname, callback, finish)} else if (stats.isFile()) {if (['.json', '.less'].includes(path.extname(pathname))) {  // 排除 目录下的 json less 文件return}fs.readFile(pathname, (err, data) => {if (err) {console.error(err)return}callback && callback(data)})if (index === files.length - 1) {finish && finish()}}})})})
}mapDir(basePath,function(file) {// console.log('TCL: file', file.toString())// 读取文件后的处理},function() {// console.log('xxx文件目录遍历完了')}
)

2021-12-10 更新
遍历目录下的所有文件,把文件路径和所在父目录同级返回给回调函数处理
让处理在回调中做,灵活度更高

function mapDir(dir, callback, finish) {fs.readdir(dir, function(err, files) {if (err) {console.error(err)return}// DFSfiles.forEach((filename, index) => {// 忽略不需要遍历的目录if(ignoreDir.includes(filename)) {return}let pathname = path.join(dir, filename)fs.stat(pathname, (err, stats) => { // 读取文件信息if (err) {console.log('获取文件stats失败')return}if (stats.isDirectory()) {mapDir(pathname, callback, finish)} else if (stats.isFile()) {typeof callback === 'function' && callback(files, pathname)if (index === files.length - 1) {finish && finish()}}})})})
}

nodejs 遍历目录(文件夹)下的所有文件相关推荐

  1. 遍历读取文件夹下的所有文件

    遍历读取文件夹下的所有文件 例如,读取文件夹下,子文件夹的所有的jpg文件: import glob path = "./database/20230302/night/*/*.jpg&qu ...

  2. c语言 遍历文件夹中所有文件名,C# 遍历文件夹下所有子文件夹中的文件,得到文件名...

    假设a文件夹在F盘下,代码如下.将文件名输出到一个ListBox中 using System.Data; using System.Drawing; using System.Linq; using ...

  3. java遍历文件夹下的_Java遍历文件夹下的所以文件

    利用Java递归遍历文件夹下的所以文件,然后对文件进行其他的操作.如:对文件进行重命名,对某一类文件进行重编码.可以对某一工程下的全部.java文件进行转码成utf-8等 代码如下,这里只对文件进行重 ...

  4. C#遍历得到指定文件夹下的所有文件和子文件夹

    1.遍历指定文件夹下的所有文件 string path = Application.StartupPath + "\\data\\采集数据\\"; DirectoryInfo ro ...

  5. python遍历指定文件夹的所有文件_python 统计指定文件夹下所有的文件数量,BFS方式...

    python 统计指定文件夹下所有的文件数量 本来一直是有这个需求,只是以前写的是递归的方式处理,感觉对资源的占用不友好,而且python的最大递归深度不超过1000,所以改了一下,这里用广度优先遍历 ...

  6. Linux:centos释放缓存,查看磁盘空间大小,xxx文件夹, 查看文件夹大小,查看剩余内存,查看xxx软件位置,统计某文件夹,统计某文件夹下目录数量,查看文件夹大小,给文件夹下所有的文件赋值权限

    一台老的PHP后台服务器,今天用 free -m 查看,发现内存跑满了. 再 top,然后按下shift+m,也就是按内存占用百分比排序,发现排在第一的进程,才占用0.9%,那是什么占用的呢?谷歌了一 ...

  7. java 文件 递归_JAVA实现遍历文件夹下的所有文件(递归调用和非递归调用)

    JAVA 遍历文件夹下的所有文件(递归调用和非递归调用) 1.不使用递归的方法调用. public void traverseFolder1(String path) { int fileNum = ...

  8. Java io流---拷贝文件夹下的所有文件和目录

    Java io流-拷贝文件夹下的所有文件和目录 代码: package demo01;import java.io.*; import java.util.TreeMap;public class C ...

  9. C#中拷贝指定文件夹下的所有文件夹目录到指定文件夹中的方法

    原文地址:http://www.biye5u.com/article/Csharp/fileprog/2011/4198.html 本文给出了一个在C#中拷贝指定文件夹下的所有文件夹目录到指定文件夹中 ...

  10. C/C++遍历Windows文件夹下的所有文件

    因为文件夹中往往包含文件和文件夹.想要遍历所有的文件,必须遍历文件夹中所有的文件夹.很显然,这个描述满足递归的两个要素:(1)问题的规模在不断的缩小,且新问题的模式与旧问题相同.很显然文件夹中含有子文 ...

最新文章

  1. SAP WM 通过2-Step Picking创建的TO之间的关联关系
  2. gunicorn部署Flask服务
  3. android 组件消失了,Android 12 2.2 开发者预览版发布:修复桌面小组件消失等问题...
  4. 为什么 12306 时不时要崩那么一下?
  5. 4.20 使用条件格式标识包含指定文本的单元格 [原创Excel教程]
  6. 20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises19
  7. 神州数码交换机的数据备份
  8. Ubuntu桌面卡死解决办法
  9. 上取整与下取整的解析
  10. 文章复现 子宫腺肌病在位内膜和异位病灶的单细胞转录组分析
  11. windows密钥查看器ProduKey1.82汉化
  12. 【C# 基础】— 解决 winForm 引用 Adobe PDF Reader控件不显示pdf 文件 问题
  13. 【游戏设计笔记】游戏设计第一堂课
  14. 制作基于springboot的简易学生管理系统(详细)
  15. 【面试题】2023前端vue面试题及答案
  16. php printer_open 用法_php程序怎么调用打印机
  17. VS2005中建立解决方案及多项目
  18. PDF格式如何转成Excel?这篇文章教会你如何转换
  19. 印度程序员 微软_微软Kaizala使印度铁路公司能够将其300万员工与医疗服务联系起来
  20. 网络精英赛模拟练习(5)

热门文章

  1. 周志华机器学习(一)
  2. 实战 Vue 之生命周期钩子函数执行顺序
  3. DNS传输协议解析!pcap报文中的域名获取
  4. 吉林大学单片机实验课实验五——重量测量
  5. Java基础8顺序语句判断语句
  6. JS字符串转数组和数组转字符串
  7. 算法学习之狄克斯特拉算法
  8. 中国软件测试有多少人,测试全国有多少人重名,查重名(无需安装软件)
  9. OpenCV+百度云人脸识别项目及源码
  10. 干货解答:如何设置Facebook Messenger 自动回复?