【发布时间】:2016-09-05 00:09:30
【问题描述】:
我只想在文件存在的情况下使用 NodeJs 更新文件。 怎么做。 我阅读了节点文档并且不推荐使用 fs.exists 。 如果我直接使用 fs.writeFile 它将创建一个新文件,如果一个不存在。
如何仅在文件存在时更新文件。 谢谢。
【问题讨论】:
我只想在文件存在的情况下使用 NodeJs 更新文件。 怎么做。 我阅读了节点文档并且不推荐使用 fs.exists 。 如果我直接使用 fs.writeFile 它将创建一个新文件,如果一个不存在。
如何仅在文件存在时更新文件。 谢谢。
【问题讨论】:
试试这个:
var fs = require('fs');
var myFile = './mono.txt';
try {
if (!fs.accessSync(myFile)) console.log('File does already exist');
}
catch (exc) {
fs.writeFile(myFile);
}
【讨论】:
fs.accessSync(...)
使用 fs.open 和 fs.write。
你需要的fs.open标志:
* 'r+' - Open file for reading and writing. An exception occurs if the file does not exist.
【讨论】:
fs.writeFile() 做到这一点。这是正确的答案。
var fs = require('fs');
fs.access('/path/to/your/file', fs.F_OK, (err) => {
if (!err) {
// File exists, update your file
}
});
fs.F_OK - 文件对调用进程可见。这对于确定文件是否存在很有用,但没有说明 rwx 权限。未指定模式时默认。
您也可以使用标志fs.R_OK | fs.W_OK | fs.X_OK额外检查调用进程的rwx权限。
【讨论】: