怎么使用Go语言fsnotify接口实现监测文件修改(fsnotify,go语言,开发技术)

时间:2024-04-29 21:36:31 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    %E6%80%8E%E4%B9%88%E4%BD%BF%E7%94%A8Go%E8%AF%AD%E8%A8%80fsnotify%E6%8E%A5%E5%8F%A3%E5%AE%9E%E7%8E%B0%E7%9B%91%E6%B5%8B%E6%96%87%E4%BB%B6%E4%BF%AE%E6%94%B9

我们先来了解下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接口实现监测文件修改的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:python如何查看自己安装的所有库并导出下一篇:

12 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18