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{})
}
相关推荐
蝎子莱莱爱打怪几秒前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
茶杯梦轩44 分钟前
CompletableFuture 在 项目实战 中 创建异步任务 的核心优势及使用场景
服务器·后端·面试
埃博拉酱1 小时前
SMB服务器无法访问?一次PowerShell故障排查演练
后端
大道至简Edward1 小时前
Spring Boot 2.7 + JDK 8 升级到 Spring Boot 3.x + JDK 17 完整指南
spring boot·后端
透明人_x1 小时前
OpenClaw安装
人工智能·后端
程序员清风1 小时前
用了三年AI,我总结出高效使用AI的3个习惯!
java·后端·面试
用户8356290780511 小时前
自动化文档处理:Python 批量提取 PDF 图片
后端·python
Java不加班1 小时前
Java 并发入门:从0到1理解线程(实战+避坑指南)
后端
掘金者阿豪1 小时前
千日护航民生支付:一张交通卡背后的国产数据库硬核突围
后端
掘金者阿豪1 小时前
Copyparty+cpolar,随时随地访问你的私人文件库
后端