Notepad++不监听文件属性变化,只在打开时读取一次只读标志;改属性后需关闭重开才生效,另存为始终可用,真正防护需结合NTFS权限、周期备份和Local History插件。

Notepad++ 本身不能锁定文件,所谓“只读”完全依赖 Windows 文件系统属性,且只在打开时检查一次——改了属性不重启文件,标题栏不会变,保存按钮也不会灰掉。
为什么改了只读属性 Notepad++ 还没反应
Notepad++ 不监听文件属性变化,只读状态是「快照式」读取:打开文件瞬间查一次 FILE_ATTRIBUTE_READONLY,之后就不管了。
- 你在资源管理器里勾选了「只读」,但 Notepad++ 已经开着这个文件 → 标题栏不显示
[READ ONLY],Save菜单项也不禁用 - 你用
attrib +R "file.conf"命令加了只读位,但没关再开 → 界面毫无变化,编辑后仍能点「保存」(实际会失败并弹Access is denied) - 没有快捷键或菜单项能“刷新只读状态”,这是 Notepad++ 的已知限制,不是 bug
真正起效的只读设置方式(Windows 层面)
Notepad++ 只响应操作系统返回的只读标志,所以设置必须落在文件本体上,而不是软件里。
- 右键文件 → 「属性」→ 勾选「只读」→ 点击「确定」(注意:
对文件夹勾选只读 ≠ 对其内文件生效) - 命令行快速操作:
attrib +R "C:path oconfig.xml"(加 R),清除用attrib -R "config.xml" - Git 仓库中的
.gitattributes或chmod不影响 Windows 只读位,别混淆 - 网络路径(如
\servershare)下 SMB 协议可能忽略只读标志,建议本地编辑后再同步
单靠只读属性防不住手抖,得加权限+备份
用户随时可以取消勾选「只读」,或者直接「另存为」覆盖原文件——Save As 始终可用,这是设计行为,不是漏洞。
- NTFS 权限加固:
右键文件 → 属性 → 安全 → 编辑 → 移除 Users 组的「写入」权限(需管理员身份) - 启用周期性备份:
设置 → 首选项 → 备份 → 勾选「启用会话快照和周期性备份」,间隔设为 3–5 分钟;它能救回崩溃前未保存的内容 - 装 Local History 插件:通过 Plugin Admin 安装,会在每个文件同目录生成
.history/,按分钟存变更,右键就能比对还原 - 别把希望押在
退出时备份上——断电、蓝屏、强制杀进程时它根本不会触发
编辑只读文件时怎么强制保存
当你确认要改一个被系统标记为只读的文件,Notepad++ 提供绕过方式,但你要清楚它绕过的是什么:
-
另存为…(Ctrl+Shift+S)是最安全的选择,换名或换路径保存,不碰原文件 - 坚持原地覆盖?先运行
attrib -R "file.txt"清除只读位,再点保存(前提是你有该文件的写权限) - 不要指望「以管理员身份运行 Notepad++」能自动获得写权——UAC 不会提升对普通文件的访问权限
- 如果保存时报
Access is denied,说明你没权限改那个文件,不是 Notepad++ 的问题
最易被忽略的一点:所有防护手段都建立在「你记得去设」的前提下。配置文件如 notepad++.xml 或 userDefineLang.xml,一旦被误改,连语法高亮都会崩——这类文件建议直接上 NTFS 权限锁死,再配 Local History 每分钟留痕。


















