问题 nodejs中的文件路径和删除文件


我想要删除3个文件 list_file_to_delete 但我不知道在这里“三个文件的路径”的路径是什么?我是否需要loop / for in / forEach函数来删除all或者只需要一个包含3个路径的字符串 var string = "...a1.jpg, ...a2.jpg,...a3.jpg"?提前致谢

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

6789
2017-11-28 02:56


起源

反引号不是引号。使用它们仅包围代码。 - Mike 'Pomax' Kamermans


答案:


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()));

16
2017-11-28 03:00



谢谢,以及如何关于文件的路径,我使用/../public/images/a1.jpg无法正常工作 - user3044147
该路径相对于您使用的目录 node yourscript.js in,所以如果你在那里打电话 myapp 目录,您将文件取消链接为“./public/images/a1.jpg”等。 - Mike 'Pomax' Kamermans
它现在有效,非常感谢。但我不明白为什么因为我认为我们在js目录中的公共目录中使用相对路径 - user3044147
相信我迈克。他们是数百人刚刚开始学习NodeJS或任何其他技术。只要提供的信息有效,拥有广泛的意见和备选方案将节省他们的调试时间。如果一个问题是3岁,我认为这不重要。关于主题的新信息总是好事。 - AllJs
我发现ALLJs评论有用;) - AlainIb