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{})
}
相关推荐
程序员清风2 分钟前
科普一下:大模型Token的收费逻辑!
java·后端·面试
Nyarlathotep01133 分钟前
并发集合类(4):ArrayBlockingQueue
java·后端
TopGames7 分钟前
〖Unity GPU粒子插件〗ParticleSystem的终极性能优化方案 十倍百倍的显著提升 现有特效转GPU粒子 高性能特效方案
java·开发语言
Chase_______29 分钟前
计算机数据存储全解:从底层进制转换到存储介质演进
java·开发语言·python
石小石Orz30 分钟前
Harness Engineering 到底是什么?概念、实战与争议,一次全部讲清楚
前端·后端
栉甜1 小时前
Js进阶(4)
开发语言·javascript·原型模式
小碗羊肉1 小时前
【JavaWeb | 第七篇】部门管理项目实战
java·开发语言·servlet
维诺菌1 小时前
claude code安装
java·开发语言·ai编程·calude
谙弆悕博士1 小时前
快速学C语言—— 第0章:C语言简介
c语言·开发语言·经验分享·笔记·程序人生·课程设计·学习方法
镜花水月linyi1 小时前
GitHub 已开源:民政部官方的国家地名信息库 MCP & Skill 实现
后端·ai编程·mcp