大佬教程收集整理的这篇文章主要介绍了Go语言监控文件变化小程序.,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
package main import ( "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 main import ( "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.Event log.Println(w) self.watch.RemoveWatch(w.Name) log.Println(w.Name," 被重命名.") } case err := <-self.watch.Error: log.Fatalln(err) } } }() }
以上是大佬教程为你收集整理的Go语言监控文件变化小程序.全部内容,希望文章能够帮你解决Go语言监控文件变化小程序.所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。