2013-01-12 41 views
4

刪除node.js中的幾個文件的最佳方法是什麼?在node.js中刪除幾個文件

function deleteFiles(files, callback){ 
    ... 
} 

var files = ['file1.js', 'file2.jpg', 'file3.css']; 
deleteFiles(files, callback); 

回答

13

異步:

var fs = require('fs'); 

function deleteFiles(files, callback){ 
    var i = files.length; 
    files.forEach(function(filepath){ 
    fs.unlink(filepath, function(err) { 
     i--; 
     if (err) { 
     callback(err); 
     return; 
     } else if (i <= 0) { 
     callback(null); 
     } 
    }); 
    }); 
} 

var files = ['file1.js', 'file2.jpg', 'file3.css']; 

deleteFiles(files, function(err) { 
    if (err) { 
    console.log(err); 
    } else { 
    console.log('all files removed'); 
    } 
}); 

http://nodejs.org/docs/v0.4.1/api/fs.html#file_System

+0

這應該是一個理解回調如何工作的例子 – santhosh

3

這將刪除陣列中的文件和運行一次回調只有在所有文件已被刪除。

function deleteFiles(files, callback){ 
    if (files.length==0) callback(); 
    else { 
     var f = files.pop(); 
     fs.unlink(f, function(err){ 
     if (err) callback(err); 
     else { 
      console.log(f + ' deleted.'); 
      deleteFiles(files, callback); 
     } 
     }); 
    } 
}