NodeJS文件显示为不存在而路径正确

时间:2017-03-31 18:52:53

标签: node.js

我正在使用以下内容检查文件是否存在:

var fs = require("fs");
console.log(process.cwd());

var file="C:\\Users\\Usr1\\Documents\\Node\\Test1\\input.txt";

if(!fs.existsSync(file)) {
    console.log("File not found");
}

路径正确,文件确实存在。如果我输出file,它也会显示正确的路径。我是NodeJS的新手,无法弄清楚发生了什么。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

首先。来自fs.existsSync() man pages

  

在调用fs.open()之前,使用fs.exists()检查文件是否存在,建议不要使用fs.readFile()或fs.writeFile()。这样做会引入竞争条件,因为其他进程可能会在两次调用之间更改文件的状态。相反,用户代码应直接打开/读取/写入文件,并在文件不存在时处理引发的错误。

所以,如果你过于重写逻辑,考虑建议,并添加@Hogan建议的path模块逻辑:

var fs = require("fs");
var path = require('path');

console.log(process.cwd()); // C:\Users\Usr1\Documents\Node\Test1

var file="C:\\Users\\Usr1\\Documents\\Node\\Test1\\input.txt";

fs.open(path.normalize(file), 'rx', function(err, fd){
   if (err) console.log(err); // consoling the actual error may help in troubleshooting what the issue is...  

   // do something now...
});