我正在尝试将目录设置为Go中的热文件夹。一旦文件完成写入该目录,就应调用一个函数。
现在,我遇到了https://github.com/howeyc/fsnotify,对于这样的文件夹来说,这似乎是一个很好的构建块。
我的问题是fsnotify在写入过程中会发出许多“文件已更改”事件,但在完成时不会发出任何事件,因此,我认为不可能用这种方式来查看进程是否已完成文件写入。
因此,我会想到“在最后一次“文件更改”事件后等待一秒钟,然后运行我的函数。但是我不确定这是否是解决问题的最佳方法,而且我不确定如何将其干净地集成到系统中。主事件循环(来自给定的github页面):
for {
select {
case ev := <-watcher.Event:
log.Println("event:", ev)
case err := <-watcher.Error:
log.Println("error:", err)
}
}
有任何想法/建议吗?
湖上湖
相关分类