Cor*_*ein 9 javascript fs node.js
我想创建一个文件foobar.但是,如果用户已经有一个名为的文件,foobar那么我不想覆盖他们的文件.所以我只想创建foobar它,如果它不存在.
起初,我认为我应该这样做:
fs.exists(filename, function(exists) {
if(exists) {
// Create file
}
else {
console.log("Refusing to overwrite existing", filename);
}
});
Run Code Online (Sandbox Code Playgroud)
然而,看着官方文档的fs.exists,它读取:
fs.exists()是一种时代错误,只是出于历史原因而存在.几乎没有理由在你自己的代码中使用它.
特别是,在打开文件之前检查文件是否存在是一种反模式,使您容易受到竞争条件的影响:另一个进程可能会在调用fs.exists()和fs.open()之间删除该文件.只需打开文件并在错误处理时处理错误.
fs.exists()将被弃用.
很明显,节点开发人员认为我的方法是个坏主意.另外,我不想使用将被弃用的函数.
如何在不写现有文件的情况下创建文件?
Dav*_*ari 16
我认为答案是:
只需打开文件并在错误处理时处理错误.
尝试类似的东西:
function createFile(filename) {
fs.open(filename,'r',function(err, fd){
if (err) {
fs.writeFile(filename, '', function(err) {
if(err) {
console.log(err);
}
console.log("The file was saved!");
});
} else {
console.log("The file exists!");
}
});
}
Run Code Online (Sandbox Code Playgroud)
小智 6
import { promises as fs } from "fs";
fs.readFile(path).catch(() =>
fs.writeFile(path, content)
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12898 次 |
| 最近记录: |