我找到了很多 C++、C# 等的答案,但还没有找到 Node.js 的答案。这是我的情况。
我创建了一个模块,用于监视我的 FTP 服务器中的文件/目录更改(新的或更新的,不关心已删除的文件)。一旦我注意到一个新文件或现有文件发生更改,我就会收到通知并通知我的模块 B 将此文件同步到 Sourceforge.net。该模块工作正常,可立即对更改做出反应。
但我还不满意的是,当添加新文件时,该文件会根据文件大小多次接收“修改”事件:大小越大,它将接收的“修改”事件越多。这是因为在上传文件时,操作系统会定期将上传的缓冲区刷新到文件系统,从而导致多个“修改”fs.watch
事件。
问题
如何检查文件是否仍然打开,以便我知道“修改”事件实际上是因为剩余数据被刷新,而不是因为文件已被多次更改,所以我可以忽略它?”
一旦文件关闭或写入停止,我就可以通知我的模块 B 同步到 SF.net。
我会很感激任何想法。谢谢。