0

我正在使用ReadDirectoryChangesW 的这个实现来监视对桌面的更改。我的程序计划在桌面上创建文件时运行一些小程序。

现在我遇到的问题是,当我通过右键单击上下文菜单创建新的快捷方式时,ReadDirectoryChangesW 收到一条通知说文件已创建,但在它收到另一个通知说文件已被删除之后。自 Windows Vista 以来,我一直遇到这个问题。

有人知道可能出了什么问题吗?我应该使用其他功能来监视特定于 Vista 和 7 的目录更改吗?

谢谢,克里希纳

4

3 回答 3

0

您是否定义了任何过滤器:您可能会看到正在重新创建的快捷方式(并且与您的过滤器不匹配)。

Explorer 倾向于创建具有固定名称的事物,然后重命名它们。所以ReadDirectoryChangesW会看到多个变化。

额外的想法:

注意,带有更改通知的缓冲区可以包含多个通知,都被​​读取。

Process Monitor同时显示什么?

于 2009-07-17T13:11:29.737 回答
0

Windows 对 .lnk 文件做了一些有趣的事情,因此您看不到 .lnk 扩展名。也许这就是发送删除通知的原因,因为 Windows 本身看不到“New Shortcut.lnk”文件,只能看到“New Shortcut”。但这只是一个理论。

所以我要做的是尝试解决它,如果文件仍然存在,则忽略文件删除通知。假设您可以确定 .lnk 文件当然仍然存在:)

于 2009-07-17T20:59:24.520 回答
0

我设法解决了这个问题。我仍然不知道为什么我会收到所有这些奇怪的 ReadDirectyChangesW 事件,但我得到了最终结果,所以我把这个问题留了下来。

感谢所有的帮助。

于 2009-08-04T20:07:09.507 回答