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