在go-inotify中观察递归目录

时间:2016-04-29 05:01:21

标签: linux go inotify

我正在使用这个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)
      }
  }
}

这是我的代码。

1 个答案:

答案 0 :(得分:2)

你做不到。 INotify不是递归的,因此您必须列出所有子目录(注意注意创建新的子目录!)并根据需要添加新的手表。

竞争图书馆有一个用于递归目录观看的开放票证,但截至2016年尚未解决:https://github.com/howeyc/fsnotify/issues/56