node.js遍历指定文件下所有文件
2022/3/3 20:17:42
本文主要是介绍node.js遍历指定文件下所有文件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
const fs = require('fs') const path = require('path') // readdir promise处理 function asyncReaddir(filePath) { return new Promise((resolve, reject) => { fs.readdir(filePath, (err, file) => { if (err) { reject(err); } resolve(file) }) }) } // statpromise处理 function asyncStat(filedir) { return new Promise((resolve, reject) => { fs.stat(filedir, (err, stats) => { if (err) reject(err); resolve(stats) }) }) } function fileDispaly(filePath, callback) { // 读取filePath路径下所有文件和文件夹名称 return asyncReaddir(filePath).then(files => { let promistList = files.map((fileName) => { let childFilePath = path.join(filePath, fileName) // 获得子文件的绝对路径 // map遍历会得到多个promise,映射成新的promise数组promistList, 之后用Promise.all处理多个promise return asyncStat(childFilePath).then(fileInfo => { // 获取每个文件或文件夹的信息 if (fileInfo.isFile()) { // 判断是否是文件 callback && callback(childFilePath) // 是文件则执行回调函数,这里演示接受文件绝对路径 } if (fileInfo.isDirectory()) { return fileDispaly(childFilePath, callback) // 递归处理文件夹 } }).catch(err => { console.log(err) }) }) return Promise.all(promistList) // 所有的promise处理完成 }).catch((err) => { console.log(err) }) } // 定义callback, 处理接受到每个文件 let fileList = [] function addFile(file) { fileList.push(file) } // 用D:/test 文件夹做测试 const filePath = path.resolve('D:\\test') fileDispaly(filePath, addFile).then(() => { // 这里可以对filePath下所有文件做处理了,如计算各个文件类型的数量 或统计文件信息等等 // console.log(fileList) // 将所有文件路径写入path.txt里 let dataStr = '' fileList.forEach(item => { dataStr += `${item} \n` }) fs.writeFile('path.txt', dataStr, (err) => { if (err) { console.log("写入文件失败") } else { console.log('写入成功') } }) })
这篇关于node.js遍历指定文件下所有文件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26怎么使用 nvm(Node Version Manager)下载并安装指定版本的 Node.js?-icode9专业技术文章分享
- 2024-11-26Vue CLI资料入门教程
- 2024-11-26Vue CLI资料入门教程
- 2024-11-26Vue3+Vite资料:新手入门教程详解
- 2024-11-26Vue3阿里系UI组件资料入门教程
- 2024-11-26Vue3的阿里系UI组件资料入门指南
- 2024-11-26Vue3公共组件资料详解与实战教程
- 2024-11-26Vue3公共组件资料详解与实战教程
- 2024-11-26Vue3核心功能响应式变量资料入门教程
- 2024-11-26Vue3核心功能响应式变量资料详解