【问题标题】:How to read from a file where the filepath uses backward slashes?如何从文件路径使用反斜杠的文件中读取?
【发布时间】:2023-04-08 19:46:02
【问题描述】:

在 node.js 中,如果我尝试从链接中带有反斜杠的文件中读取(使用 fs 模块),我会得到这个

 Error: EISDIR: illegal operation on a directory, open 'C:\main\temp\config
1\folder\plugin\jquery-3.1.1.min.js'
    at Error (native)
  errno: -4068,
  code: 'EISDIR',
  syscall: 'open',
  path: 'C:\\main\\temp\\config1\\folder\\plugin\\jquery-3.1.1.min.js' }

node.js 代码:

fs.readFile('C:\main\temp\config1\folder\plugin\jquery-3.1.1.min.js', function (err, data) {

});

有人知道怎么解决吗?

谢谢

【问题讨论】:

    标签: node.js fs


    【解决方案1】:

    nodejs 支持 Windows 路径。您需要转义反斜杠:

    fs.readFile('C:\\main\\temp\\config1\\folder\\plugin\\jquery-3.1.1.min.js', function (err, data) {
    
    });
    

    【讨论】:

    • 但是在我将文件路径传递给readFile之前,我使用了这个path.join("C:/hello", "/foo/bar");,我可以有path.join,自动为我转义吗?
    • @omega 不,您不能,因为未转义的反斜杠是语法错误,而不是编码错误,但您可以使用 path.join 自动将反斜杠添加到您的字符串。例如,path.join('C:', 'Windows', 'hello') 会产生 C:\Windows\hello,但如果你这样做,则需要使用 path.join('C:\\Windows', 'hello')
    猜你喜欢
    • 1970-01-01
    • 2017-03-16
    • 2014-09-20
    • 2013-07-23
    • 2023-04-08
    • 2014-02-04
    • 1970-01-01
    • 2018-12-21
    • 1970-01-01
    相关资源
    最近更新 更多