【问题标题】:ENOENT: no such file or directory when running fs.readFileENOENT:运行 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

【问题讨论】:

    标签: javascript node.js readfile fs enoent


    【解决方案1】:

    在您对fs.readFile() 的调用中,output.txt 字符串前面有一些(不可打印的)字符会导致问题。

    在我的编辑器中,我看到了这个:

    fs.readFile('<200e>⁨output.txt', function read(err, data)
    

    "从左到右的标记 (U+200E)"

    【讨论】:

    • 确实有一些东西我的编辑没有显示它,它也解决了我的问题
    猜你喜欢
    • 1970-01-01
    • 2018-07-03
    • 2014-01-12
    • 1970-01-01
    • 2023-03-31
    • 2018-09-29
    • 2020-03-08
    • 2013-11-28
    • 2013-07-28
    相关资源
    最近更新 更多