FSNotify 在运行时添加监视目录
Posted
技术标签:
【中文标题】FSNotify 在运行时添加监视目录【英文标题】:FSNotify add watch directories while running 【发布时间】:2017-03-27 01:41:27 【问题描述】:我真的不知道如何提出这个问题,但就是这样。
我正在使用 fsnotify 来监视某些目录的更改,当文件更改时,我会将更改同步到另一个目录。但我也想将新创建的目录添加到手表中,但它并没有真正起作用。
这是我的代码:
func Watcher()
watcher, err := fsnotify.NewWatcher()
defer watcher.Close()
done := make(chan bool)
go func()
for
select
case event := <-watcher.Events:
if file.Mode().IsDir()
err = os.Mkdir(dest, 0755)
err = watcher.Add(dest)
case err := <-watcher.Errors:
log.Println("error:", err)
()
dirs, err := readLines("dirs")
for _, el := range dirs
err = watcher.Add(el)
check(err)
<-done
函数要长得多,但我已经删除了不重要的部分。一切正常,除了err = watcher.Add(dest)
。
如何让它观看更多目录?
【问题讨论】:
【参考方案1】:它工作得很好,但我弄错了一些变量。应该是 watcher.Add(event.Name)
而不是 watcher.Add(dest)
。
【讨论】:
以上是关于FSNotify 在运行时添加监视目录的主要内容,如果未能解决你的问题,请参考以下文章
在fsnotify上递归重新生成文件删除/重命名(Golang)
go监视文件改变实现同步--包含遍历文件夹,执行cmd命令,检测文件改变