一、 需要下载的包
go get github.com/fsnotify/fsnotify
二、使用fsnotify监控文件
type Watch struct {
Watch *fsnotify.Watcher
}
func (w *Watch) WatchDir(dir string) {
//通过walk来遍历目录下的所有子目录
filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {
//这里判断是否为目录,只需要监控目录即可
//目录下的文件也在监控范围之内,不需要我们一个个的加
if info.IsDir() {
path, err := filepath.Abs(path)
if err != nil {
return err
}
err = w.Watch.Add(path)
if err != nil {
return err
}
fmt.Println("monitor:", path)
}
return nil
})
//开启一个goroutine来处理监控对象的事件
go func() {
for {
select {
case ev :=