2016-08-01 264 views
1

我正在尝试使用节点js'fs'模块从本地系统读取文件。但由于某些原因,当我通过绝对路径时,'fs'模块不工作。从节点fs中的绝对路径读取本地文件

代码:

let filePath = "/home/mysystem/dev/myproject/sayHello.txt"; 
let newFile=fs.readFileSync('file://'+filePath); 

代码抛出一个错误:

Uncaught Error: ENOENT: no such file or directory, open 'file:///home/mysystem/dev/myproject/sayHello.txt' 

但我可以使用相同的路径从打开浏览器窗口中的文件。 如果我传递相对路径,fs模块正在工作。我正在使用电子框架构建的应用程序中使用它。

+2

您不需要NodeJS的'file'协议。只需尝试阅读'filePath'而不用'“file://”' – zfor

+0

谢谢! 。我试图解决这个很长一段时间。 :) – Roy

+0

@zfor您能否将您的评论转换为答案? –

回答

3

在NodeJS中,您不必使用file协议来读取文件。

可以摆脱"file://"部分,并尝试阅读filePath直接

let filePath = "/home/mysystem/dev/myproject/sayHello.txt"; 
let newFile = fs.readFileSync(filePath); 
0

我得到了这个难倒了一点。如果在Windows上使用Angular 2和Typescript,您的绝对路径将如下所示:

import { readdirSync } from "fs"; 
. . . 
let x = readdirSync("C:/SAFE/Dir1/Blah"); 
console.log("files retrieved="+ x.length);