我试图在文档中找到,但没有找到指示。
我阅读了 win32 手表代码(因为我熟悉 API,但似乎并不熟悉)。
在 Windows 上跟踪文件删除非常复杂,因为 API 提供了“随机”损坏的文件名,如果文件不再存在以解析真实名称“长路径”,则很难说出原始文件名是什么。
我已经为我以前的公司实现了这样的东西,保留文件的当前状态并协调每个目录中发生更改的文件列表。它运作良好。
我的问题是:我是否错过了它并且守望者会通知已删除的文件?如果没有 - 是否有计划在不久的将来添加这些通知。
我试图在文档中找到,但没有找到指示。
我阅读了 win32 手表代码(因为我熟悉 API,但似乎并不熟悉)。
在 Windows 上跟踪文件删除非常复杂,因为 API 提供了“随机”损坏的文件名,如果文件不再存在以解析真实名称“长路径”,则很难说出原始文件名是什么。
我已经为我以前的公司实现了这样的东西,保留文件的当前状态并协调每个目录中发生更改的文件列表。它运作良好。
我的问题是:我是否错过了它并且守望者会通知已删除的文件?如果没有 - 是否有计划在不久的将来添加这些通知。
简短的回答:是的。
更长的答案:更复杂的部分并不完全是特定于窗口的。
可以在这里找到处理损坏名称的位: https ://github.com/facebook/watchman/blob/master/root.c#L748
处理删除的位分为两部分;当我们准确检查我们收到通知的文件时,第一个处理事情: https ://github.com/facebook/watchman/blob/master/root.c#L853
第二种是一种“垃圾收集”方法,我们正在查看包含目录并发现文件已消失: https ://github.com/facebook/watchman/blob/master/root.c#L1353