我正在使用golang监视程序包来监视文件目录。 https://github.com/radovskyb/watcher唯一的问题是,创建事件是在文件开始被复制/移动时触发的,而不是在文件实际准备好时触发的。我想知道在创建事件之后Go中是否有一种整洁的等待方式,直到不再写入文件再继续。我想这种等待很可能必须在goroutine中完成才能不阻止任何其他文件事件。简单的例子:package mainimport ( "fmt" "log" "time" "github.com/radovskyb/watcher")func main() { w := watcher.New() w.FilterOps(watcher.Create, watcher.Write) go func() { for { select { case event := <-w.Event: fmt.Println(event) // Print the event's info. if event.Op == watcher.Create { // HERE WE DO STUFF doStuff(event) } case err := <-w.Error: log.Fatalln(err) case <-w.Closed: return } } }() // Watch this folder for changes. if err := w.Add("./files/"); err != nil { log.Fatalln(err) } // Start the watching process - it'll check for changes every 100ms. if err := w.Start(time.Millisecond * 100); err != nil { log.Fatalln(err) }}谢谢!
2 回答
- 2 回答
- 0 关注
- 224 浏览
添加回答
举报
0/150
提交
取消