【发布时间】:2021-02-13 05:16:51
【问题描述】:
我刚刚在 Windows 10 上下载了 LTS 节点 (14.15.0 [npm 6.14.8]),但无法写入文件。
如果我在任何地方运行以下脚本:
var fs = require("fs");
fs.writeFileSync("./test.txt", "hello world", "utf-8");
我收到以下错误:
[Error: EPERM: operation not permitted, open 'C:\Users\Mehow\Documents\experiments\map-engine\data\moon\test.txt'] {
errno: -4048,
code: 'EPERM',
syscall: 'open',
path: C:\\path\\to\\my\\file\\test.txt
我尝试过使用异步方法,我得到了同样的错误。
我已经检查了文件夹的权限,它们看起来不错。
我以管理员身份运行控制台,没有任何变化。
奇怪的是,我可以使用这样的脚本轻松创建文件夹:
fs.mkdirSync(some_directory, {recursive: true});
有人知道我还能做什么吗?
【问题讨论】:
-
其他人是否已经打开了该文件?你能从你的 node.js 脚本中读取那个文件吗?
-
不,如果我在磁盘上的任何地方对全新文件执行此操作,就会发生这种情况...
-
您使用什么权限运行您的 nodejs 脚本?也许尝试重新启动系统?为什么错误信息显示
path: C:\\path\\to\\my\\file\\test.txt?你编辑了吗? -
我编辑了它,因为它总是指向你运行的路径 + \test.txt。我试过重启,我试过修复节点
-
好吧,似乎它必须是一些奇怪的权限,除非它是那个特定版本的 nodejs 中的错误。由于无法在系统中四处寻找并查看事物,我不确定还有什么建议。
标签: node.js windows windows-10 fs