使用 Node.js 检查文件是否存在的最佳实践是什么?
在这里的其他问题中,我看到很多答案都说使用fs.exists
But the docs http://nodejs.org/api/fs.html#fs_fs_exists_path_callback say:
特别是,在打开文件之前检查文件是否存在是一种反模式,使您容易受到竞争条件的影响:另一个进程可能会在调用 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
}
}
打开文件时会发生什么?它是否会保持打开状态直到您关闭它(这是泄漏吗?)?
是的,如果您打开文件,则必须将其关闭。否则它将保持打开状态,直到您的进程终止。
如果我使用 fs.exists 我也打开该文件吗?
只需致电fs.exists()
不打开该文件,因此无需关闭任何内容。
如果您有理由只检查文件是否存在,则应该使用fs.exists()
。文档说,如果您真正想做的是打开文件,则无需检查fs.exists()
预先。如果您想打开一个文件,只需尝试打开它并处理错误即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)