背景
用于监控文件系统更改ReadDirectoryChangesW的Windows API无法可靠地报告文件移动操作。相反,它只是通知Deleted + Created。
问题
可以实现哪些变通方法来在Windows上实现这样的“移动事件”效果? 我确信我不是第一个处理这个问题的人。
我自己的第一个想法是保存受监控目录中的所有内容的SHA1总和(可能在SQLite数据库中),并将更改的文件与SHA1进行比较,这样如果删除+创建发生并且它们的sha1总和匹配,我们可以安全地假设它是一个移动操作。这感觉有点矫枉过正,我想知道是否有其他人已经找到了一些更好的解决方法。
有什么想法吗?