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:在写入之前检查文件是不是存在[重复]的主要内容,如果未能解决你的问题,请参考以下文章

std::ofstream,写入前检查文件是不是存在

检查特定文件夹中是不是已存在文件[重复]

在 Node JS 中使用 MSQL XDEVAPI,我可以将多个调用链接在一起吗?

在检索值之前检查哈希映射键是不是存在[重复]

Node.js ORM2 检查字段是不是已存在

如何在解析之前检查 XML 中是不是存在属性和标签?