我是说,基本上就是这样。nodejs文档指出exists是一种反犹太教,但我看不出stat是如何取代它的。

最佳答案

fs.stat()方法实际上不替换fs.exists(),但您可以通过其他函数的错误代码来查找文件是否存在。不管文件是否存在,都可以直接在文件上使用fs.stat()。同样的事情也适用于fs.open()fs.readFile()等。

fs.stat(file, function(err, stats) {
  // if err is ENOENT
});

文档建议这样做,因为它消除了fs.exists()调用和实际文件操作之间发生竞争条件的可能性,在这种情况下,可以在异步函数之间的时间删除文件。
下面是一个直接检查文件是否存在的例子,如果是,请阅读它。如果文件不存在,则err对象的code属性将包含字符串ENOENT
fs.readFile('/etc/passwd', function(err, data) {
  if (err.code == 'ENOENT') {
    // the file doesn't exist
  }

  // the file exists if there are no other errors
});

关于linux - 如何从fs.Stats对象中查找文件是否存在?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20014888/

10-11 22:57
查看更多