6

我想知道特定目录的任何更改文件。所以,我想出了 ReadDirectoryChangesW() 和 FindFirstChangeNotification() - FindNextChangeNotification() API。

然后,我使用 ReadDirectoryChangesW() 函数实现。但是,我不知道为什么会有 FindFirst...blabla API。我认为 ReadDirectoryChangesW() 函数可以完成 FindFirst... API 的所有工作。

有什么不同?

4

1 回答 1

5

FindFirstChangeNotification

创建更改通知句柄并设置初始更改通知过滤条件。{...}此函数不表示满足等待条件的更改。要在通知中检索有关特定更改的信息,请使用 ReadDirectoryChangesW 函数。

ReadDirectoryChangesW

检索描述指定目录中更改的信息。该函数不报告对指定目录本身的更改。

结论:

如果要注册文件侦听器,请使用FindFirstChangeNotification但请记住,此函数不会等待更改,为了实现您需要在注册文件侦听器后使用WaitForSingleObject 。

如果您不关心正在收听的路径更改的类型,则无需使用ReadDirectoryChangesW。如果您需要知道触发WaitForSingleObject的确切更改是什么,那么您需要使用ReadDirectoryChangesW

于 2015-03-25T08:57:34.747 回答