2013-11-28 145 views
10

我想刪除list_file_to_delete中的3個文件,但我不知道什麼是「路徑三個文件在這裏」?我需要爲環/中/的forEach功能刪除所有或只需要3條路徑可能var string = "...a1.jpg, ...a2.jpg,...a3.jpg"一個字符串?在此先感謝文件路徑和刪除nodejs文件

delete.js文件

var list_file_to_delete = ["/images/a1.jpg", "/images/a2.jpg", "/images/a3.jpg"] 
fs.unlink(path to three files here, function(err) {console.log("success")}) 

這是myapp目錄

myapp 
     /app 
      /js 
      delete.js 
     /public 
      /images 
        a1.jpg 
        a2.jpg 
        a3.jpg 
     server.js 
+0

反引號不是引號。使用它們僅環繞代碼。 –

回答

15

fs.unlink需要一個單一的文件,所以取消鏈接的每個元素:

list_of_files.forEach(function(filename) { 
    fs.unlink(filename); 
}); 

,或者,如果你需要順序但異步刪除您可以使用以下ES5代碼:

(function next(err, list) { 
    if (err) { 
    return console.error("error in next()", err); 
    } 
    if (list.length === 0) { 
    return; 
    } 
    var filename = list.splice(0,1)[0]; 
    fs.unlink(filename, function(err, result) { 
    next(err, list); 
    }); 
}(null, list_of_files.slice())); 
+0

謝謝,文件路徑怎麼樣,我用/../public/images/a1.jpg不工作 – user3044147

+0

這個路徑是相對於你使用'node yourscript.js'的路徑,所以如果你在'myapp'目錄,你會斷開鏈接的文件爲「./public/images/a1.jpg」等 –

+0

它現在,感謝這麼多。但我不明白爲什麼,因爲我認爲我們使用相對路徑來防止js目錄中的公共目錄 – user3044147