我目前使用fs.watch
监控node.js中的文件。我遇到的问题是例如,假设我将1gig文件复制到我正在观看的文件夹中。文件开始复制的时刻,我收到关于该文件的通知。如果我立即开始阅读,由于文件尚未完成复制,最终导致数据不正确。例如一个zip文件在最后有它的目录,但是我最终会在它的目录被写入之前阅读它。如何监控文件的更改,并在更改完成后才查看它们?
关闭我的头顶,我可以设置一些任务,每N秒钟在文件上调用fs.stat
,并且只在数据停止更改时尝试读取它。这样可行,但看起来并不理想,因为我希望我的应用程序尽可能快速响应,并且每秒调用一堆文件统计数据看起来很重,以及每5秒或10秒调用统计数据似乎无响应。
当文件完成修改时,是否有一些更健壮的方式来获得通知?
可能是错误的,但不是“修改”日期是在更改后在文件上修改的最后一个信息? –