【发布时间】:2014-05-24 10:06:04
【问题描述】:
使用 Node.js 检查文件是否存在的最佳做法是什么?
在这里的其他问题中,我看到很多答案说要使用fs.exists
但是docs 说:
特别是,在打开文件之前检查文件是否存在是一种反模式,这会使您容易受到竞争条件的影响:另一个进程可能会在调用 fs.exists() 和 fs.open() 之间删除文件。只需打开文件并在错误不存在时处理错误。
打开文件时发生了什么?它会一直打开直到你关闭它(这是泄漏吗?)?那么,打开文件后是否必须关闭文件?如果我使用fs.exists,我也可以打开文件吗?
这是否意味着检查文件是否存在的最佳方法是:
fs.open('path/file.js', function(err, fd) {
if (err && err.code == 'ENOENT') {
// Does not exist
} else if (!err) {
// Does exist
fs.close(fd);
} else {
// Some other error
}
}
【问题讨论】:
标签: node.js