我正在使用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 回答
- 0 關注
- 249 瀏覽
添加回答
舉報
0/150
提交
取消