Node.js:在写入之前检查文件是不是存在[重复]
Posted
技术标签:
【中文标题】Node.js:在写入之前检查文件是不是存在[重复]【英文标题】:Node.js: checking for file existence before writing [duplicate]Node.js:在写入之前检查文件是否存在[重复] 【发布时间】:2015-11-22 20:02:54 【问题描述】:从这里我知道,官方立场是在操作文件之前不检查是否存在:Node.js check exist file 相反,人们应该简单地尝试写入并处理可能引发的任何异常。
但是,我的情况是我只想将某个文件写入文件夹,因为该文件尚不存在。如果文件存在,我什么都不想做。
实现这一点的惯用方法是什么?
【问题讨论】:
使用fs.stat
,如您链接的问题的答案中所述。
好的。 fs.stat
是否保证仅在文件不存在时返回错误?
没有。但保证在文件不存在时返回特定错误'ENOENT'
(error: no entry)仅。再次,请参阅 FÔx Gênki 对链接问题的回答。
对,我没有注意到那个细节。谢谢!尽管我必须在语义上这么说,但这是残酷的。我几乎必须将它包装在我自己命名合理的函数中,以便对阅读代码的人有任何意义。
【参考方案1】:
你可以试试:
fs = require('fs');
fs.stat('path-to-your-file', function(err)
if (err)
// file does not exist
else
// file exists
);
【讨论】:
我是否保证仅在我正在寻找的情况下得到一个错误——文件不存在?或者我可能会得到假阴性?【参考方案2】:只需使用fs.exists
。
fs.exists('/path/to.file', function (exists)
if (!exists)
// do something
);
【讨论】:
以上是关于Node.js:在写入之前检查文件是不是存在[重复]的主要内容,如果未能解决你的问题,请参考以下文章