1. 程式人生 > >nodejs 文件系統(fs) 刪除文件夾 及 子文件夾下的所有內容

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

所有 sans pan ont each 訪問 exist 返回 family

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 可能不是文件,也可能是 目錄。

});

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