遍历文件夹下的所有文件,最后输出文件夹下所有文件名
功能描述
- 给定一个路径,获取文件夹下所有文件
- 给定一个路径,判断是文件还是文件夹
- 如果是文件直接输出文件名
- 如果是文件夹,继续遍历最终输出文件夹下的文件名
功能演示的效果图
功能实现的思路,以及所运用到的node 基础核心知识
- path 拼接一个绝对路径,join方法能自动补齐路径,防止少层级或者多层级的问题。
//伪代码let path = require('path');let fpath = path.join(__dirname,a,b)复制代码
- fs 读取文件夹操作 fs.readdir(url,回调函数)
- fs 判断是文件夹或者文件
- 封装遍历的方法为一个功能模块,递归实现文件夹中子文件夹的深层嵌套。减少代码
代码实现部分
//遍历文件夹下的所有文件,最后输出文件夹下所有的文件名//思路 使用fs,path 模块//1、先读取文件夹,获取文件的所有文件//2、对获取的文件进行遍历,用fs.stat 获得文件状态,//3、通过状态中的stat.isFile()判断是否是一个文件,是文件直接输出文件名,不是文件就继续递归。let fs = require("fs");let path = require("path");let myurl = "E:/coding/"function myReadfile(MyUrl) { fs.readdir(MyUrl, (err, files) => { if (err) throw err files.forEach(file => { //拼接获取绝对路径,fs.stat(绝对路径,回调函数) let fPath = path.join(MyUrl, file); fs.stat(fPath, (err, stat) => { if (stat.isFile()) { //stat 状态中有两个函数一个是stat中有isFile ,isisDirectory等函数进行判断是文件还是文件夹 console.log(file) } else { myReadfile(fPath) } }) }) })}myReadfile(myurl);复制代码
小结
记录node 基础学习的一个小案例,欢迎一起交流学习。