写一个go程序监视文件夹文件的变动
时间: 2023-09-27 20:04:41 浏览: 42
好的,以下是一个简单的Go程序,用于监视指定文件夹中文件的变化:
```go
package main
import (
"fmt"
"os"
"path/filepath"
)
func main() {
dirPath := "./testfolder" // 监视的文件夹路径
fileCh := make(chan string) // 文件变化通知通道
// 启动监视协程
go watchDir(dirPath, fileCh)
fmt.Println("Watching directory:", dirPath)
// 无限循环等待文件变化通知
for {
select {
case file := <-fileCh:
fmt.Println("File changed:", file)
}
}
}
// 监视指定的文件夹,有文件变化时发送通知到通道
func watchDir(dirPath string, fileCh chan string) {
// 获取文件夹中所有文件
err := filepath.Walk(dirPath, func(path string, info os.FileInfo, err error) error {
if !info.IsDir() {
fileCh <- path // 发送文件路径到通道
}
return nil
})
if err != nil {
fmt.Println("Error watching directory:", err)
}
}
```
这个程序会监视指定的文件夹中所有文件的变化,当文件发生变化时,会把文件路径发送到通道中,并在主程序中打印出文件变化的信息。您可以根据需要修改程序,比如添加文件变化类型的判断等。