在用
github.com/howeyc/fsnotify
这个包的时候发现 不能正确的处理文件夹的重命名操作
文件夹重命名后,对文件夹进行操作新产生的时间中的event.Name还是原来的名字。我该如何解决?或者还有什么监听文件变化的包?
比如我这里把文件夹名 dddd
改成了 eeee
紫色框里变成eeee
才对啊
在用
github.com/howeyc/fsnotify
这个包的时候发现 不能正确的处理文件夹的重命名操作
文件夹重命名后,对文件夹进行操作新产生的时间中的event.Name还是原来的名字。我该如何解决?或者还有什么监听文件变化的包?
比如我这里把文件夹名 dddd
改成了 eeee
紫色框里变成eeee
才对啊
7 回答5.3k 阅读
6 回答6.8k 阅读✓ 已解决
4 回答2.3k 阅读
1 回答3.4k 阅读
2 回答930 阅读✓ 已解决
2 回答2.3k 阅读
1 回答2.2k 阅读
对于递归检测的情况,每次检测到一个rename时,需要将原来的子目录从监控列表中删除,然后再添加改名后的子目录到监控列表中。
粗略看了一下
github.com/howeyc/fsnotify
的实现代码,调用addWatch
操作时,会建立一个wfd
到path
的 map,后面发现这个path
上有事件时,将之前记录的path
和 OS 返回的相对路径连起来得到event.Name
这个字段,因此除非你删除后再添加一次,否则path
值是不会变的。