我正在尝试读取文件的内容。文件存在性检查通过,即使读取的文件如下所示:
var fs = require('fs')
fs.exists('c:\\abc.txt',function(exists){
console.log("exists");
fs.readFile('c:\\abc.txt', 'UTF-8', function (err,data) {
if (err) {
console.log("err"+err);
}
console.log("data:"+data);
});
});
输出
exists
errError: ENOENT: no such file or directory, open 'c:\abc.txt'
data:undefined
我该如何纠正这一点。
您的代码没有检查结果fs.exists
是否是文件存在。您只是继续在回调中读取文件。您需要检查第一个参数以查看它是真(文件存在)还是假(不存在)。目前,您的代码根本没有使用该exists
参数。(它也应该退出readFile
回调或者使用data
if err
is not跳过该位null
。)
但是,fs.exists
已被弃用的年龄,并分别,有一个在检查是否想读它,因为它可以创建或删除文件前不存在点后的检查存在,但之前的读取。尝试读取文件,如果不能,请处理错误:
var fs = require('fs');
fs.readFile('c:\\abc.txt', 'UTF-8', function(err, data) {
if (err) {
console.log("err"+err);
return;
}
console.log("data:"+data);
});
如果你真的想在阅读之前检查存在,你可以使用fs.existsSync
(不推荐使用),这至少减少了检查存在和阅读文件之间的窗口,但它仍然没有多大意义。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句