nodejs fs删文件

fs删文件。

node 文件系统fs 为我们提供了一些方法 进行文件和文件夹的读写删除等操作
下边将介绍删除文件夹及子文件夹下的所有内容的相关命令(均含有同步和异步方法)

1、 fs.stat && fs.statSync 提供了访问文件的属性信息
2、 fs.readdir && fs.readdirSync 提供读取文件目录信息
3、 fs.unlink && unlinkSync  进行删除文件操作,不可以删除文件夹
4、 fs.rmdir && fs.rmdirSync 进行删除文件夹操作,但文件夹必须为空文件夹


接下来  进行文件夹的删除工作
第一步:将所有的文件删除(清空所有的文件夹)
第二部:删除所有的空文件夹
完成以上两步,就可以达到我们的目的了,下边来看看具体的代码实现 

router.get('/removeFile',function(req,res,next){
    var rootFile = '../赚钱啦';//要删除的文件夹 url
    //删除所有的文件(将所有文件夹置空)
    var emptyDir = function(fileUrl){
        var files = fs.readdirSync(fileUrl);//读取该文件夹
        files.forEach(function(file){
            var stats = fs.statSync(fileUrl+'/'+file);
            if(stats.isDirectory()){
                emptyDir(fileUrl+'/'+file);
            }else{
                fs.unlinkSync(fileUrl+'/'+file);
                console.log("删除文件"+fileUrl+'/'+file+"成功");
            }
        });
    }
    //删除所有的空文件夹
    var rmEmptyDir = function(fileUrl){
        var files = fs.readdirSync(fileUrl);
        if(files.length>0){
            var tempFile = 0;
            files.forEach(function(fileName)
            {
                tempFile++;
                rmEmptyDir(fileUrl+'/'+fileName);
            });
            if(tempFile==files.length){//删除母文件夹下的所有字空文件夹后,将母文件夹也删除
                fs.rmdirSync(fileUrl);
                console.log('删除空文件夹'+fileUrl+'成功');
            }
        }else{
            fs.rmdirSync(fileUrl);
            console.log('删除空文件夹'+fileUrl+'成功');
        }
    }
    emptyDir(rootFile);
    rmEmptyDir(rootFile);
    res.send('YES!!!');
});

页面返回 YES!!!   就看看你的文件目录吧,是不是已经不存在了,大功告成~  文件就删除成功。


代码优化:清空文件夹和删除文件夹一次进行  

var deleteFolder = module.exports.deleteFolder= function(path) {
    var files = [];
    if( fs.existsSync(path) ) {
        files = fs.readdirSync(path);
        files.forEach(function(file,index){
            var curPath = path + "/" + file;
            if(fs.statSync(curPath).isDirectory()) { // recurse
                deleteFolder(curPath);
            } else { // delete file
                fs.unlinkSync(curPath);
            }
        });
        fs.rmdirSync(path);
    }
};

参考地址:奔跑吧~昭熙小乐

 

与本文有关的文章

express/ multer 上传图片文件 pm2 启动node以及linux 环境变量配置 nginx设置多个node项目 nginx静态资源与node冲突解决方案 nodejs/pm2基本操作 cookie,session,nodejs log4js-node日记模块 百度分享报错url不合法!!原创!! npm的常用命令。 nginx反向代理,node获取真实IP nodejs fs删文件 multer对单个上传的文件做限制处理。 nodejs发送邮件实例 qq email nodejs模块之FS File System(文件系统) DEMO演示 nodejs express允许跨域访问设置 用nodejs批量获取qq群成员信息 nodejs request模块实例以及爬虫 nodejs express 模块公共代码部分提取 express cookie清除无效?? Node中require和import 转:【全文】狼叔:如何正确的学习Node.js 分享一些有用的工具网站 Nodejs接收图片base64格式保存为文件再返回图片url地址 &#x(unicode编码后的汉字)JS转译方法-nodejs爬虫转译乱码 linux centos 7.4安装nodejs与nginx mongodb Nodejs全局模块安装了却显示命令不存在? nodejs服务器文件直传阿里云oss nodejs ejs模块try catch的坑 nodejs fs模块常用API 读取目录,重命名等等 nodejs实现百度post推送 nodejs爬虫记录 nodejs 分词模块推荐-nodejieba npm 模块安装机制简介 nodejs流式传输请求时如何处理错误 在pipe前添加on error | Error: getaddrinfo EAI_AGAIN www.xxx.com | connect timedout 百度翻译API nodejs版本 nodejs 图片加水印 images模块 nodejs gm图片操作模块笔记 npm cheerio模块移除元素上不必要的属性 - nodejs nodejs 模块推荐 html-minifier (html压缩)压缩模块 nodejs 定时任务模块(node-schedule) nodejs模块之 cheerio 中文乱码 jq.fileupload上传文件 服务的nodejs接收 demo nodejs express - PayloadTooLargeError: request entity too large ? nodejs使用gmail批量发送email nodejs request乱码 nodejs下载远程文件 nodejs下载远程文件 简要DEMO nodejs 移动文件位置 nodejs 递归删除方法
回到顶部