FSNotify 在 运行 时添加监视目录
FSNotify add watch directories while running
我真的不知道如何提出这个问题,但就是这样。
我正在使用 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)
.
如何让它观看更多的目录?
它工作得很好,但我弄错了一些变量。应该是 watcher.Add(event.Name)
而不是 watcher.Add(dest)
.
我真的不知道如何提出这个问题,但就是这样。
我正在使用 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)
.
如何让它观看更多的目录?
它工作得很好,但我弄错了一些变量。应该是 watcher.Add(event.Name)
而不是 watcher.Add(dest)
.