下面是一个使用Golang监控文件并输出监控信息的简单示例代码:
package main
import (
"fmt"
"os"
"path/filepath"
)
func main() {
// 监控的目录路径
dir := "/path/to/directory"
// 创建监控器
watcher, err := fsnotify.NewWatcher()
if err != nil {
fmt.Println("Error:", err)
return
}
defer watcher.Close()
// 遍历目录,添加所有子目录和文件到监控器中
filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {
if !info.IsDir() {
err = watcher.Add(path)
if err != nil {
fmt.Println("Error:", err)
return err
}
}
return nil
})
// 监听事件并打印监控信息
for {
select {
case event, ok := <-watcher.Events:
if !ok {
return
}
fmt.Printf("Event: %s | Path: %s\n", event.Op.String(), event.Name)
case err, ok := <-watcher.Errors:
if !ok {
return
}
fmt.Println("Error:", err)
}
}
}
请将 "/path/to/directory"
替换为您要监视的实际目录路径。这个程序将监听指定目录及其子目录中的所有文件变动,并打印相关的监控信息,包括事件类型和路径。可以根据实际需求进行进一步修改和扩展。
内容由零声教学AI助手提供,问题来源于学员提问