node.js,删除非空目录(删除文件目录过多的文件)

第二种
// 删除非空目录
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’);

你可能感兴趣的:(node,node)