【问题标题】:Can't write to file using fs on windows无法在 Windows 上使用 fs 写入文件
【发布时间】: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


【解决方案1】:

请执行以下步骤:- 1).右键单击。文件夹 > 属性 > 安全选项卡。单击编辑以更改权限>选择用户并将完全控制权授予该用户 2).取消勾选文件属性中的只读选项

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-31
    • 1970-01-01
    • 2016-09-09
    • 2020-07-15
    • 2017-12-02
    • 2016-10-22
    • 1970-01-01
    相关资源
    最近更新 更多