FindFirstChangeNotification功能创建更改通知句柄并设置初始更改通知过滤器条件。当在指定的目录或子树中发生与过滤条件匹配的更改时,通知处理的等待成功。
HANDLE FindFirstChangeNotification(
LPCTSTR 【lpPathName】, | //指向要观看的目录的名称的指针 |
BOOL 【bWatchSubtree】, | //监控目录或目录树的标志 |
DWORD 【dwNotifyFilter】 | //过滤条件来监视 |
); |
参数
【lpPathName】
指向一个以null结尾的字符串,指定要观看的目录的路径。
【bWatchSubtree】
指定该函数是否监视目录或目录树。如果此参数为TRUE,则该函数将监视指定目录下的目录树;如果它是FALSE,它只监视指定的目录。
【dwNotifyFilter】
指定满足更改通知等待的过滤条件。此参数可以是以下值中的一个或多个:
值 | 含义 | ||||
FILE_NOTIFY_CHANGE_FILE_NAME | |||||
监视目录或子树中的任何文件名更改导致更改通知等待操作返回。更改包括重命名,创建或删除文件名。 | |||||
FILE_NOTIFY_CHANGE_DIR_NAME | |||||
监视目录或子树中的任何目录名更改导致更改通知等待操作返回。更改包括创建或删除目录。 | |||||
FILE_NOTIFY_CHANGE_ATTRIBUTES | |||||
监视目录或子树中的任何属性更改导致更改通知等待操作返回。 | |||||
FILE_NOTIFY_CHANGE_SIZE | |||||
监视目录或子树中的任何文件大小更改导致更改通知等待操作返回。仅当文件写入磁盘时,操作系统才会检测文件大小的变化。对于使用大量缓存的操作系统,仅当高速缓存充分刷新时才会发生检测。 | |||||
FILE_NOTIFY_CHANGE_LAST_WRITE | |||||
对监视目录或子树中文件的最后一次写入时间的任何更改都会导致更改通知等待操作返回。只有当文件写入磁盘时,操作系统才能检测到最后写入时间的更改。对于使用大量缓存的操作系统,仅当高速缓存充分刷新时才会发生检测。 | |||||
FILE_NOTIFY_CHANGE_SECURITY | |||||
监视目录或子树中的任何安全描述符更改导致更改通知等待操作返回。 |
返回值
如果函数成功,则返回值是查找更改通知对象的句柄。
如果函数失败,返回值为INVALID_HANDLE_VALUE。要获取扩展错误信息,请调用GetLastError.
备注
等待功能可以使用FindFirstChangeNotification函数返回的句柄来监视指定的目录或子树。当一个过滤条件发生在受监控的目录或子树中时,等待满足。
等待满足后,应用程序可以响应此条件,并通过调用FindNextChangeNotification功能和适当的等待功能来继续监视目录。当不再需要手柄时,可以使用FindCloseChangeNotification功能关闭手柄。
也可以看看