对于递归检测的情况,每次检测到一个rename时,需要将原来的子目录从监控列表中删除,然后再添加改名后的子目录到监控列表中。
粗略看了一下
github.com/howeyc/fsnotify
的实现代码,调用
addWatch
操作时,会建立一个
wfd
path
的 map,后面发现这个
path
上有事件时,将之前记录的
path
和 OS 返回的相对路径连起来得到
event.Name
这个字段,因此除非你删除后再添加一次,否则
path
值是不会变的。