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{})
}
相关推荐
Asthenia04121 分钟前
面试攻略:如何应对 Spring 启动流程的层层追问
后端
Asthenia041210 分钟前
Spring 启动流程:比喻表达
后端
Asthenia041233 分钟前
Spring 启动流程分析-含时序图
后端
ONE_Gua37 分钟前
chromium魔改——CDP(Chrome DevTools Protocol)检测01
前端·后端·爬虫
致心38 分钟前
记一次debian安装mariadb(带有迁移数据)
后端
未完结小说41 分钟前
RabbitMQ高级(一) - 生产者可靠性
后端
探索为何44 分钟前
JWT与Session的实战选择-杂谈(1)
后端·面试
Asthenia04121 小时前
面试官让我介绍 Atomic 原子类有哪些?底层的实现机制是什么?
后端
Asthenia04121 小时前
魔法数字与常量在 Java 开发中的区别
后端
鱼樱前端2 小时前
maven的基础安装和使用--mac/window版本
java·后端