ENOENT:运行 fs.readFile 时没有这样的文件或目录
Posted
技术标签:
【中文标题】ENOENT:运行 fs.readFile 时没有这样的文件或目录【英文标题】:ENOENT: no such file or directory when running fs.readFile 【发布时间】:2019-05-30 02:30:16 【问题描述】:自从开始我的项目以来,我在读取文件时遇到了困难。我尝试了相对路径和绝对路径。尝试创建自己的文件并使用fs.writeFileSync()
输出一个。
有趣的是,fs.writeFileSync()
可以工作(文件是使用其内容创建的),但 fs.readFile()
找不到它创建的文件。
var fs = require('fs');
var path = require('path');
var content;
fs.writeFileSync('output.txt', 'test data', 'utf8');
fs.readFile('output.txt', function read(err, data)
if (err)
throw err;
content = data;
);
console.log(content);
运行脚本产生错误:
$ node script.js
undefined
/path/to/project/script.js:6
throw err;
^
Error: ENOENT: no such file or directory, open 'output.txt'
访问权限似乎是正确的:
$ ls -l
total 104
-rw-r--r-- 1 myusername staff 634 Jan 3 14:24 script.js
-rw-r--r-- 1 myusername staff 8 Jan 3 14:23 output.txt
【问题讨论】:
【参考方案1】:在您对fs.readFile()
的调用中,output.txt
字符串前面有一些(不可打印的)字符会导致问题。
在我的编辑器中,我看到了这个:
fs.readFile('<200e>output.txt', function read(err, data)
"从左到右的标记 (U+200E)"
【讨论】:
确实有一些东西我的编辑没有显示它,它也解决了我的问题以上是关于ENOENT:运行 fs.readFile 时没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章
在循环中使用带有 fs.readFile 的 Promises
Node.JS:fs.readFile 在 Ubuntu 上不起作用
使用 require vs fs.readFile 读取 json 文件内容