FindFirstChangeNotification( LPCTSTR lpPathName, BOOL bWatchSubtree, DWORD dwNotifyFilter)
HANDLE s_eventHandles[2];s_eventHandles[0] = m_eventHandle; // гдето в конструкторе m_eventHandle = CreateEvent(0,0,0,0); для <отмены>s_eventHandles[1] = FindFirstChangeNotification( (const char*)directory,FALSE,0L |FILE_NOTIFY_CHANGE_FILE_NAME |FILE_NOTIFY_CHANGE_DIR_NAME // FILE_NOTIFY_CHANGE_ATTRIBUTES | |FILE_NOTIFY_CHANGE_SIZE // FILE_NOTIFY_CHANGE_LAST_WRITE | );int ret=0;while(1){ ret = WaitForMultipleObjects(2,s_eventHandles,FALSE,INFINITE); if(ret==WAIT_OBJECT_0) break; // terminate thread if(!FindNextChangeNotification(eventHandles[1])) break; // terminate thread // для того чтобы понять какой файл был изменён или удалён необходим дополнительный алгоритм}
[Qt-4.2.0]...const QString absolutePath = fileInfo.absolutePath(); HANDLE handle = handleForDir.value(absolutePath); if (!handle) { QT_WA({ handle = FindFirstChangeNotificationW((TCHAR *) absolutePath.utf16(), ...