前言
使用fs.unlink()
或者fs.unlinkSync()
可以删除文件,使用fs.rmdir()
或s.rmdirSync()
可以删除空的目录。但是一个非空目录并没有直接的操作去删除。这样只能去封装一个函数。
思路
1.首先定义一个函数,传入一个目录路径,判断路径是否存在fs.existsSync()
2.读取该目录下的所有资源(文件、空目录,非空目录)fs.readdirSync()
3.遍历该资源列表并读取每一个资源的信息fs.statSync()
4.判断每一个资源是否为文件isFile()
(文件夹isDirectory()
)
5.如果是文件则删除fs.unlinkSync()
,如果是目录则调用函数本身,即递归
6.删除空目录fs.rmdirSync()
实现
function delfn(p){
if( fs.existsSync(p) ){ //如果路径正确
var list = fs.readdirSync(p) //获取该目录下资源列表
list.forEach((v,i) => { //遍历该资源列表
var path = p+'/'+v //拼接新的路径
var stats = fs.statSync(path) //获取每一个资源的信息
if(stats.isFile()) { //如果是文件 删除
fs.unlinkSync(path)
}else{//如果是目录 调用自己
delfn(path)
}
})
fs.rmdirSync(p) //删除空目录
}
}
delfn('./name')
其它方法
1.下载
npm i rimraf
2.使用
var rimraf = require('rimraf');
rimraf('./name', function () {
console.log('删除完成');
});