Notepad++ 不支持文件夹级新增文件监控,仅能监听已打开单个文件的磁盘变更;需借助 Watchdog 脚本、PowerShell 轮询或 inotifywait 等外部方案实现,并注意路径、权限及同步工具导致的事件丢失问题。

Notepad++ 本身不支持监控文件夹内新增文件,只能监听单个已打开文件的磁盘变更;要实现“文件夹级新增提醒”,必须借助外部工具或插件。
Notepad++ 原生功能根本不管文件夹
很多人误以为“监视日志”或“Document Monitor”能监听目录变化,其实它们只作用于当前**已打开的单个文件**:
- “监视日志”(View → Monitoring log)只对打开的日志文件做末尾追加检测,且仅在焦点切换或手动刷新时检查一次
- “Document Monitor”(Settings → Preferences → MISC. → Enable)只比对已保存文件的最后修改时间戳,不扫描目录、不感知新文件创建
- 新建未保存的标签页(如
new 1)完全不受监控,哪怕你把它拖进目标文件夹里也没用
想真监听文件夹新增,得换方案
Notepad++ 没有内置的 inotify / ReadDirectoryChangesW 封装,所以必须绕道:
- 用
Watchdog写个轻量 Python 脚本,监听指定路径,检测到on_created后自动用npp_exec打开新文件或弹窗提醒 - 用 NppExec + PowerShell 组合:脚本中调用
Get-ChildItem轮询比对文件列表(适合低频场景),但要注意避免高频轮询卡住 Notepad++ 主线程 - 如果只是开发调试用,直接在 WSL 里跑
inotifywait -m -e create /path/to/dir,触发后用notepad.exe命令行打开——前提是 Windows 端 Notepad++ 已注册为默认.txt处理器
常见失效原因和硬限制
即使用了插件或脚本,以下情况仍会导致“监听到了却没反应”:
- 监控路径含中文、空格或符号(如
C:\My Logs\),PowerShell 或 Python 的subprocess调用容易因引号缺失失败,必须显式用单引号包裹'$(FULL_CURRENT_PATH)' - 目标文件夹被 OneDrive / Dropbox / 腾讯微云 同步中,其虚拟文件系统(VFS)会拦截底层事件,
ReadDirectoryChangesW和inotify都可能静默丢事件 - Notepad++ 以管理员权限运行,而监听脚本是普通用户权限,Windows UAC 会隔离进程间通知,导致弹窗被吞或文件打不开
- Python 的
watchdog默认用inotify(Linux)或ReadDirectoryChangesW(Windows),但后者要求监控路径必须是目录句柄——若路径是符号链接或网络映射盘(如Z:\),需先os.path.realpath()解析真实路径
真正可靠的文件夹新增监控,从来不是 Notepad++ 的职责。它只负责编辑,别让它背监控的锅。最稳的做法:用专用工具盯文件夹,用 Notepad++ 专注打开和改内容——中间靠脚本或命令桥接,别强求一体化。


















