我是说,基本上就是这样。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/