Могу ли я получить изменения информации о файле в указанном каталоге, используя FindFirstChangeNotification и FindNextChangeNofication вместо ReadDirectoryChangesW? - PullRequest
2 голосов
/ 04 декабря 2008

Я хочу получать уведомления, когда в указанном каталоге есть какие-либо изменения в его файлах или подкаталогах. Я реализую функцию со следующим простым сегментом кода:

UINT myThreadFunc(LPVOID pParam)
{
  int changeCount = 0;

  while(true)
  {
    HANDLE changeHandle = FindFirstChangeNotification(L"C:\\", TRUE, FILE_NOTIFY_CHANGE_FILE_NAME);
    WaitForSingleObject(changeHandle, INFINITE);
    cout<<"A modifaction has occured"<<endl;
    changeCount++;

    if (changeCount >= 10)
        break;
    if ( FindNextChangeNotification( changeHandle ) == FALSE )
        break;
  }
  bIsExit = TRUE;
  return 0;
}

Как получить информацию, такую ​​как тип действия или имя файла, без использования ReadDirectoryChangesW?

1 Ответ

1 голос
/ 04 декабря 2008

MSDN состояний:

Эта функция не указывает на изменение, которое удовлетворяло условию ожидания. Чтобы получить информацию о конкретном изменении как часть уведомления, используйте функцию ReadDirectoryChangesW (проверьте текст ссылки )

...