ReadDirectoryChangesW 用法
1、首先看一下ReadDirectoryChangesW()参数的作用。
BOOL WINAPI ReadDirectoryChangesW(
HANDLE hDirectory, // 对目录进行监视的句柄 LPVOID lpBuffer, // 一个指向DWORD类型的缓冲区,其中可以将获取的数据结果将其返回。 DWORD nBufferLength, // 指lpBuffer的缓冲区的大小值,以字节为单位。 BOOL bWatchSubtree, // 监视目录. 一般选择 TRUE DWORD dwNotifyFilter, // 对文件过滤的方式和标准 LPDWORD lpBytesReturned, // 将接收的字节数转入lpBuffer参数 LPOVERLAPPED lpOverlapped, // 一般选择 NULL LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine // 一般选择 NULL
);
2、用例:
HANDLE handle_directory = CreateFile(“C:\文件夹”, FILE_LIST_DIRECTORY, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
ReadDirectoryChangesW(handle_directory, (LPVOID)notify, sizeof(notify), TRUE, FILE_NOTIFY_CHANGE_FILE_NAME|FILE_NOTIFY_CHANGE_LAST_ACCESS|FILE_NOTIFY_CHANGE_SIZE|FILE_ACTION_ADDED, (LPDWORD)&(parameter->in_out_BytesReturned), NULL, NULL))