2013-11-28 150 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