本例子监听当前文件夹下的文件新建,更名,或者对文件内容更新。
package main
import (
"log"
"github.com/fsnotify/fsnotify"
)
func main() {
watcher, err := fsnotify.NewWatcher()
if err != nil {
log.Fatal("NewWatcher failed: ", err)
}
defer watcher.Close()
done := make(chan bool)
go func() {
defer close(done)
for {
select {
case event, ok := <-watcher.Events:
if !ok {
return
}
log.Printf("%s %s\n", event.Name, event.Op)
case err, ok := <-watcher.Errors:
if !ok {
return
}
log.Println("error:", err)
}
}
}()
err = watcher.Add("./")
if err != nil {
log.Fatal("Add failed:", err)
}
<-done
}
go run main.go
在当前文件夹下,建立一个文件,并重命名。新建"新建文本文档.txt",并重命名为121.txt。如下事件。
对121.txt进行内容编辑。会产生write事件。两次编辑产生两次write
标签:ok,log,err,watcher,案例,fsnotify,go,GO From: https://blog.51cto.com/wyf1226/5871309