在对文件进行热更新时,需要监听文件的变化,记录下go中实现文件监听的一种方式。
go代码示例:
当文件被重命名或删除时,执行更新操作(此处为打印delete)
package main
import (
"fmt"
"github.com/fsnotify/fsnotify"
)
func main(){
watcher, _ := fsnotify.NewWatcher()
watcher.Add("test.txt")
defer watcher.Close();
select {
case event := <-watcher.Events:
{
if event.Op&fsnotify.Rename == fsnotify.Rename || event.Op&fsnotify.Remove == fsnotify.Remove {
fmt.Println("delete")
} else if event.Op&fsnotify.Write == fsnotify.Write {
} else if event.Op&fsnotify.Create == fsnotify.Create {
}
}
case err := <-watcher.Errors:
fmt.Println(err.Error())
}
}
如有不对,烦请指出,感谢~