github.com/gogf/gf@v1.16.9/.example/os/gfsnotify/fsnotify.go (about)

     1  package main
     2  
     3  import (
     4  	"log"
     5  
     6  	"github.com/fsnotify/fsnotify"
     7  	"github.com/gogf/gf/os/glog"
     8  )
     9  
    10  func main() {
    11  	// 创建一个监控对象
    12  	watch, err := fsnotify.NewWatcher()
    13  	if err != nil {
    14  		log.Fatal(err)
    15  	}
    16  	defer watch.Close()
    17  	//添加要监控的对象,文件或文件夹
    18  	//err = watch.Add("D:\\Workspace\\Go\\GOPATH\\src\\gitee.com\\johng\\gf\\geg\\other\\test.go")
    19  	err = watch.Add("/Users/john/Workspace/Go/GOPATH/src/github.com/gogf/gf/.example/other/test.go")
    20  	if err != nil {
    21  		log.Fatal(err)
    22  	}
    23  	//我们另启一个goroutine来处理监控对象的事件
    24  	go func() {
    25  		for {
    26  			select {
    27  			case ev := <-watch.Events:
    28  				glog.Println(ev)
    29  
    30  			case err := <-watch.Errors:
    31  				log.Println("error : ", err)
    32  				return
    33  
    34  			}
    35  		}
    36  	}()
    37  
    38  	//循环
    39  	select {}
    40  }