javascript - 如何防止 fs.writeFile 覆盖现有文件?
问题描述
我正在从 swagger API 定义文件创建测试文件。我fs.writeFile
用于创建测试文件(主要是存根,所以我需要手动向这些文件添加详细信息)。现在的问题是,每当我再次生成测试文件时,它也会覆盖所有现有文件。
所以,我的问题是,是否fs.writeFile
可以设置一些选项来指定如果文件已经存在,则不要覆盖它?
最明显的方法似乎是首先检查文件是否存在,只有在它不存在时才生成它。但是,如果fs.writeFile
本身有一些选项,那将更加方便和紧凑。
解决方案
fs.writeFile没有任何选项来检查文件是否已经存在。
我建议使用fs-extra。以下是解决方案之一。
async function writeFile(f) {
try {
if ((await fs.pathExists(f)) === false) {
await fs.outputFile(f, 'hello!');
}
} catch (err) {
console.error(err);
}
}
writeFile('/tmp/this/path/does/not/exist/file.txt');
推荐阅读
- visual-studio - 我可以使用 Selenium 在 VS 2017 dotnet 4.7 中创建自动化测试吗
- c++ - unordered_map 上的 C++ 未定义行为作为基于范围的 for 循环中的右值
- python - 如果 Loss 是字符串或函数,TensorFlow Keras 序列模型的训练方式会有所不同
- javascript - Apple Sign in Javascript :: 如何处理成功的登录回调(redirect_uri)
- ruby-on-rails - SystemStackError(堆栈级别太深)RVM 1.9.3
- flutter - 同时动态异步调用
- c++ - 愿意在 64 位指针值上引入竞争条件
- ios - 在 iOS 13 中使用 UITabBar.ItemPositioning
- symfony4 - Symfony 4.3.5 - 更新父关系的表单生成器和错误验证
- file-format - 如何解析这个 Apple 特定的 MPEG 文件头?