第二种
// 删除非空目录
var fs = require(‘fs’);
//使用同步的方式实现
function deldir§ {
var list = fs.readdirSync§;
list.forEach(function (v, i) {
var fn = p + ‘/’ + v;
var stats = fs.statSync(fn);
console.log(fn);
if (stats.isFile()) {
//如果是文件则删除
console.log(‘是文件夹’);
fs.unlinkSync(fn);
} else {
//如果是目录则调用自身,递归调用
console.log(‘目录’)
// arguments.callee(fn);//arguments.callee();调用当前函数
deldir(fn)
}
});
//删除空目录
fs.rmdir§;
}
deldir(’./file’);
第三种,(第二种优化)
/**
- 使用代码删除某个文件夹,该文件夹不为空:
- 使用递归函数实现,逐层查询并清空文件再删除空文件夹
- 1.定义一个函数,用于实现递归调用。
- 2.删除空文件夹(删不掉,目录非空)
- 3.读取文件夹的内容(文件及文件夹列表)
- 4.遍历数组一个一个获取文件信息。
- 5.判断是否为文件,如果是文件则删除
- 6.判断是否为目录,如果是目录就调用自己(递归的入口)
*/
var fs=require(‘fs’);
function deldir§{
// 读取文件夹内容
var list=fs.readdirSync§;
// 遍历数组
for(var i in list){
// list[i]是当前目录中每一个文件及文件夹的名称
var path=p+’/’+list[i];//拼接一个从(11.js)当前目录能查找到的路径
var info=fs.statSync(path);
if(info.isFile()){
fs.unlinkSync(path);//如果是文件则删除文件
}else{
arguments.callee(path);//如果不是文件就是目录,则调用自己再删除目录
}
}
fs.rmdirSync§;
}
deldir(’./file’);