golang fsnotify使用

Go 复制代码
package main

import (
	"log"

	"github.com/fsnotify/fsnotify"
)

func main() {
	// Create new watcher.
	watcher, err := fsnotify.NewWatcher()
	if err != nil {
		log.Fatal(err)
	}
	defer watcher.Close()

	// Start listening for events.
	go func() {
		for {
			select {
			case event, ok := <-watcher.Events:
				if !ok {
					return
				}
				log.Println("event:", event)
				if event.Op == fsnotify.Write {
					log.Println("modified file:", event.Name)
				}
			case err, ok := <-watcher.Errors:
				if !ok {
					return
				}
				log.Println("error:", err)
			}
		}
	}()

	// Add a path.
	err = watcher.Add("/Users/cobainzheng/tmp")
	if err != nil {
		log.Fatal(err)
	}

	// Block main goroutine forever.
	<-make(chan struct{})
}
相关推荐
干啥啥不行,秃头第一名几秒前
C++与机器学习框架
开发语言·c++·算法
花月C1 分钟前
基于WebSocket的 “聊天” 业务设计与实战指南
java·网络·后端·websocket·网络协议
hongtianzai2 分钟前
Laravel7.x十大核心特性解析
java·c语言·开发语言·golang·php
永远睡不够的入5 分钟前
C++庖丁解牛:深入理解多态:从虚函数表到底层实现
开发语言·c++
姚青&7 分钟前
Pytest fixture 参数化(params 参数)
开发语言·python·pytest
计算机学姐8 分钟前
基于SpringBoot的校园二手交易系统
java·vue.js·spring boot·后端·spring·tomcat·intellij-idea
qq_334903159 分钟前
C++与人工智能框架
开发语言·c++·算法
紫檀香9 分钟前
Alembic入门教程
后端·python
2401_8914821711 分钟前
C++中的状态模式
开发语言·c++·算法
用户5805595021012 分钟前
深入理解 Go defer(下):编译器与runtime视角的实现原理
后端·go