如果文件不存在,fs.statSync 会抛出错误
Posted
技术标签:
【中文标题】如果文件不存在,fs.statSync 会抛出错误【英文标题】:fs.statSync throws error if file does not exist 【发布时间】:2016-01-28 18:31:47 【问题描述】:我正在尝试确定文件是否存在。如果它不存在,我希望我的代码继续,以便创建它。当我使用以下代码时,如果文件存在,它会打印出“它存在”。如果它不存在,它会使我的应用程序崩溃。这是我的代码:
var checkDuplicateFile = function()
var number = room.number.toString();
var stats = fs.statSync(number);
if(stat)
console.log('it exists');
else
console.log('it does not exist');
;
【问题讨论】:
检查这个问题,答案类似:***.com/questions/4482686/… 这对我没有帮助。它没有回答我提出的问题。 不能使用异步版本的函数吗? nodejs.org/api/fs.html#fs_file_system 【参考方案1】:您的应用程序崩溃了,因为您没有将 fs.statSync
包装在 try/catch
块中。节点中的同步函数不会像在 async
版本中那样返回错误。相反,他们会抛出需要捕获的错误。
try
var stats = fs.statSync(number);
console.log('it exists');
catch(err)
console.log('it does not exist');
如果您的应用不需要此操作是同步的(阻止进一步执行,直到此操作完成),那么我将使用异步版本。
fs.stat(number, function(err, data)
if (err)
console.log('it does not exist');
else
console.log('it exists');
);
【讨论】:
以上是关于如果文件不存在,fs.statSync 会抛出错误的主要内容,如果未能解决你的问题,请参考以下文章
如果 "blah" 不存在,ConfigurationManager.AppSettings["blah"] 会抛出异常吗?