You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Golang调用os.WriteFile写入.txt文件报access denied如何解决

问题原因

该异常和Go标准库os.WriteFile的实现逻辑无关,是Windows系统侧的安全防护规则拦截导致:
你当前设备大概率开启了Windows Defender的受控文件夹访问(勒索软件防护),或是安装了带文档防护能力的第三方安全软件(360安全卫士、腾讯电脑管家、WPS文档防护等)。这类防护的核心规则是拦截未授信程序对.txt、.docx、.xlsx等常见文档格式的写入、修改操作,避免勒索软件加密用户文档;无后缀文件不属于受保护的文档范畴,因此写入操作可以正常执行。
管理员权限运行、切换终端、更换存储路径均不生效,是因为这类防护规则基于文件后缀、程序信任度做拦截判断,和程序运行权限、文件存储位置没有直接关联。

注:你代码中传入的0644、0660类Unix风格文件权限位,在Windows系统下仅会识别只读标记,不会导致特定后缀文件写入被拦截,无需修改这部分参数。

解决步骤

按优先级依次排查验证:

  • 临时关闭Windows Defender受控文件夹访问测试
    打开Windows安全中心,依次进入「病毒和威胁防护」→「勒索软件防护」→「管理勒索软件防护」,临时关闭「受控文件夹访问」开关后重新运行程序。如果关闭后txt文件可以正常写入,不需要长期关闭防护,在同页面的「通过受控文件夹访问允许应用」选项中,将你编译生成的Go程序二进制文件加入信任列表即可。
  • 排查第三方安全软件的文档防护规则
    如果设备安装了第三方安全工具,找到功能列表中类似文档防护、勒索病毒防护、文档守护者的模块,临时关闭后测试。如果关闭后写入正常,将你的Go程序添加到对应功能的信任白名单即可恢复正常使用。
  • 排查基础文件权限异常
    打开资源管理器的「查看」选项卡,勾选「文件扩展名」,确认目标写入路径下不存在同名的只读txt文件,也没有被其他程序(比如已打开的文本编辑器)占用的txt文件。也可以手动在目标目录右键新建txt文件、编辑保存,如果手动保存也提示访问被拒绝,说明当前用户对该目录的文档类文件写入权限被系统策略限制,调整对应目录的用户权限即可。

内容的提问来源于stack exchange,提问作者Yarden Buzaglo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 11:21:22