nodejs 文件系統(fs) 刪除文件夾 及 子文件夾下的所有內容


http://blog.163.com/hule_sky/blog/static/2091622452015112821829773/

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);
    }
};

 

注意   file.foreach(function(file,index){

 

//注意里面的file 可能不是文件,也可能是  目錄。

 

});

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM