const int buf_size = 1024;
TCHAR buf[buf_size];
DWORD dwBufWrittenSize;
HANDLE hDir;
hDir = CreateFile(lpDir, FILE_LIST_DIRECTORY, FILE_SHARE_WRITE | FILE_SHARE_READ, NULL, OPEN_EXISTING,
FILE_FLAG_BACKUP_SEMANTICS, NULL);
if (hDir == INVALID_HANDLE_VALUE)
{
DWORD dwErrorCode;
dwErrorCode = GetLastError();
CloseHandle(hDir);
exit(0);
}
while(true)
{
if(ReadDirectoryChangesW(hDir, &buf, buf_size, FALSE, FILE_NOTIFY_CHANGE_SIZE | FILE_NOTIFY_CHANGE_LAST_WRITE | FILE_NOTIFY_CHANGE_ATTRIBUTES \
, &dwBufWrittenSize, NULL, NULL))
{
FILE_NOTIFY_INFORMATION * pfiNotifyInfo = (FILE_NOTIFY_INFORMATION*)buf;
DWORD dwNextEntryOffset;
do
{
dwNextEntryOffset = pfiNotifyInfo->NextEntryOffset;
DWORD dwAction = pfiNotifyInfo->Action;
DWORD dwFileNameLength = pfiNotifyInfo->FileNameLength;
if(_tcsnccmp(pfiNotifyInfo->FileName, lpFileName, _tcsclen(lpFil
ReadDirectoryChanges监控文件改动
最新推荐文章于 2024-04-24 09:31:28 发布