我正在使用以下内容检查文件是否存在:
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的新手,无法弄清楚发生了什么。有人可以帮忙吗?
答案 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...
});