2013-02-02 23 views
0

我正在尋找一種方法來清空Express中的目錄。使用Node.js和Express清空目錄

基本上,我有一個tmp目錄,我存儲的臨時文件,並每隔一段時間我只是想清空所有文件的文件夾,但不刪除文件夾本身。

這樣做的最好方法是什麼?我目前使用Node v0.8.9Express v.3.0.0rc4

回答

0

我寫了這個函數調用刪除文件夾。它將遞歸地刪除某個位置中的所有文件和文件夾。它需要的唯一軟件包是異步的。 var async = require('async');

function removeFolder(location, removeFolder, next) { 
    fs.readdir(location, function (err, files) { 
     async.each(files, function (file, cb) { 
      file = location + '/' + file 
      fs.stat(file, function (err, stat) { 
       if (err) { 
        return cb(err); 
       } 
       if (stat.isDirectory()) { 
        removeFolder(file, true, cb); 
       } else { 
        fs.unlink(file, function (err) { 
         if (err) { 
          return cb(err); 
         } 
         return cb(); 
        }) 
       } 
      }) 
     }, function (err) { 
      if (err) return next(err) 
      fs.rmdir(location, function (err) { 
       return next(err) 
      }) 
     }) 
    }) 
} 

我改變了它有點不刪除原來的文件夾使用叫它:

removeFolder('/tmp', false, function(err){ 
    //callback 
})