前言小序 #前端技术分享
这是文章是我2018年在我自己的掘金账号上线分享的一篇文章感觉蛮有意义的就拿出来和大家聊聊。
一直都想着在知乎上写一些代码技术相关的分享类文章了。废话不多说直接进入今天主题。
遍历文件夹下的所有文件,最后输出文件夹下所有的文件名
功能描述
- 给定一个路径,获取文件夹下所有文件
- 给定一个路径,判断是文件还是文件夹
- 如果是文件直接输出文件名
- 如果是文件夹,继续遍历最终输出文件夹下的文件名
功能演示的效果图
功能实现的思路,以及所运用到的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);
作者:絮尘飘飞
链接:https://juejin.cn/post/6844903609583271943
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
小结
记录node 基础学习的一个小案例,欢迎一起交流学习。 絮尘飘飞