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{})
}
相关推荐
灰子学技术1 分钟前
性能分析工具比较pprof、perf、valgrind、asan
java·开发语言
Minilinux20186 分钟前
Google ProtoBuf 简介
开发语言·google·protobuf·protobuf介绍
大尚来也9 分钟前
看不见的加速器:深入理解 Linux 页缓存如何提升 I/O 性能
java·开发语言
wWYy.10 分钟前
程序编译链接过程
开发语言
铁蛋AI编程实战12 分钟前
AI调用人类服务入门与Python实现(30分钟搭建“AI+真人”协作系统)
开发语言·人工智能·python
zhougl99614 分钟前
Java 常见异常梳理
java·开发语言·python
独自破碎E17 分钟前
已经 Push 到远程的提交,如何修改 Commit 信息?
开发语言·github
数智工坊31 分钟前
【数据结构-栈、队列、数组】3.3栈在括号匹配-表达式求值上
java·开发语言·数据结构
lsx20240633 分钟前
Bootstrap 插件概览
开发语言
毕设源码-钟学长34 分钟前
【开题答辩全过程】以 基于PHP的动漫社区的设计与实现为例,包含答辩的问题和答案
开发语言·php