我正在使用这个go库https://godoc.org/golang.org/x/exp/inotify来获取Linux inotify中的文件和文件夹观察器,当我们直接在Linux中使用它时,它会传递一个参数来监视递归目录,即-r但是在这个包装器中我该怎么办?在调用函数时指定。
package main
import (
"golang.org/x/exp/inotify"
"log"
)
func main() {
watcher, err := inotify.NewWatcher()
if err != nil {
log.Fatal(err)
}
err = watcher.Watch("/home/minions")
if err != nil {
log.Fatal(err)
}
for {
select {
case ev := <-watcher.Event:
log.Println("event:", ev)
case err := <-watcher.Error:
log.Println("error:", err)
}
}
}
这是我的代码。
答案 0 :(得分:2)
你做不到。 INotify不是递归的,因此您必须列出所有子目录(注意注意创建新的子目录!)并根据需要添加新的手表。
竞争图书馆有一个用于递归目录观看的开放票证,但截至2016年尚未解决:https://github.com/howeyc/fsnotify/issues/56