【发布时间】:2016-03-15 05:25:56
【问题描述】:
如果文件存在而不是覆盖它,我想让这段代码更改文件名。
var fileName = 'file';
fs.writeFile(fileName + '.txt', 'Random text', function (err) {
if (err) throw err;
console.log('It\'s saved!');
});
类似:
var fileName = 'file',
checkFileName = fileName,
i = 0;
while(fileExists(checkFileName + '.txt')) {
i++;
checkFileName = fileName + '-' + i;
} // file-1, file-2, file-3...
fileName = checkFileName;
fs.writeFile(fileName + '.txt', 'Random text', function (err) {
if (err) throw err;
console.log('It\'s saved!');
});
考虑到fs.exists() 现在已弃用并且fs.statSync() 或fs.accessSync() 会在文件不存在时抛出错误,我该如何创建“fileExists”函数。也许有更好的方法来实现这一点?
【问题讨论】:
-
这样的功能通常是不必要的,因为另一个进程可以在您检查文件是否存在然后尝试处理它之间轻松创建或删除文件 - 似乎这就是它在 node.js 中被弃用的原因。我不熟悉 node.js 中的 fs (因此这是评论而不是答案),但通常会有一个版本的函数,例如
writeFile,如果文件已经存在,它可以选择指定其行为
标签: javascript node.js fs