检查文件是否存在,如果存在则返回
我正在使用Node.js,我想检查一个文件是否存在,并返回结果到一个对象的属性。 我想这样:
var file_exists = function(file) { return fs.stat(file, function(error, stat) { if (error) { return false; } else { return true; } }); }; result = []; for (var i = 0; i < files.length; i++) { result.push({ exists: file_exists(file[i]) }); }
但是返回undefined。 这是因为asynchronous?
我怎么解决这个问题?
谢谢。
你有一个概念的错误,当你执行fs.stat,callback运行在他自己的范围内。 返回true / false,不返回file_exists函数的作用域。
你可以使用fs.statSync
var file_exists = function(file) { try { fs.statSync(file); } catch (e) { return false; } return true; };