为了账号安全,请及时绑定邮箱和手机立即绑定

等到文件复制完成

等到文件复制完成

Go
ABOUTYOU 2021-04-09 18:15:36
我正在使用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
提交
取消
意见反馈 帮助中心 APP下载
官方微信