這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
package mainimport ("log""github.com/go-fsnotify/fsnotify")func main() {watcher, err := fsnotify.NewWatcher()if err != nil {log.Fatal(err)}defer watcher.Close()done := make(chan bool)go func() {for {select {case event := <-watcher.Events:log.Println("event:", event)if event.Op&fsnotify.Write == fsnotify.Write {log.Println("modified file:", event.Name)}case err := <-watcher.Errors:log.Println("error:", err)}}}()err = watcher.Add("slog")if err != nil {log.Fatal(err)}<-done}
package mainimport ("github.com/howeyc/fsnotify""log")type monitor struct {watch *fsnotify.Watcher}func main() {M, err := NewMonitor()if err != nil {log.Println(err)return}M.Do()M.watch.Watch("../")select {}}func NewMonitor() (monitor, error) {Mon, err := fsnotify.NewWatcher()return monitor{Mon}, err}func (self monitor) Do() {go func() {for {select {case w := <-self.watch.Event:log.Println(w)if w.IsModify() {continue}if w.IsDelete() {log.Println("檔案被刪除.")continue}if w.IsRename() {w = <-self.watch.Eventlog.Println(w)self.watch.RemoveWatch(w.Name)log.Println(w.Name, " 被重新命名.")}case err := <-self.watch.Error:log.Fatalln(err)}}}()}
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。