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