怎么使用Go语言fsnotify接口实现监测文件修改
导读:本文共1674字符,通常情况下阅读需要6分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 安装工具$gogetgithub.com/fsnotify/fsnotify关键类型我们先来了解下fsnotify工具的所有类型。Event结构体Event结构体表示单个文件系统通知。函数String()返回一个“file: REMOVE|WRITE|…”格式字符串表示事件的字符串。typeEventstruct{Namestring//... ...
目录
(为您整理了一些要点),点击可以直达。我们先来了解下fsnotify工具的所有类型。
Event结构体表示单个文件系统通知。
函数String()返回一个“file: REMOVE|WRITE|…”格式字符串表示事件的字符串。
该工具描述了一组文件操作。它们是可以触发通知的通用文件操作。
Watcher结构体是该工具的核心。包含两个channel和三个函数。
Events 通道
Errors 通道
Add:非递归监测文件或目录的变化。
Remove:停止监测文件或目录。
Close:关闭所有文件或目录的监测以及关闭Events通道。
函数NewWatcher通过底层操作系统调用创建watcher对象,并等待事件通知。
上面的代码通过启动一个goroutine在后台监测目录或文件的变化,调用函数watcher.Add("./")添加监测的目录是当前目录,也就是main.go文件所在目录。
运行程序后,如果你修改下当前main.go文件会产生如下结果:
Output
2022/06/09 07:01:15 main.go~ CREATE
2022/06/09 07:01:15 main.go WRITE|CHMOD
2022/06/09 07:01:15 main.go~ CREATE
2022/06/09 07:01:15 main.go CHMOD
2022/06/09 07:01:15 main.go WRITE
2022/06/09 07:01:15 main.go~ REMOVE
2022/06/09 07:01:16 main.go CHMOD
上面的输出过程可以发现,修改文件并保存会触发以下动作:
CREATE动作即临时文件的创建
WRITE写文件动作
CHMOD修改文件属性
REMOVE删除临时文件。
怎么使用Go语言fsnotify接口实现监测文件修改的详细内容,希望对您有所帮助,信息来源于网络。