Функция FindFirstChangeNotification
В общем, программка ждет, пока в заданной папке сделают что-то с каким-нибудь файлом (создали новый, удалили, переименовали) и дрыгается (в смысле выводит окошко на экран) когда такое действо совершается. Вопрос: а как определить имя этого самого файла, над которым совершается действие? Прогамма юзает функции WaitForMultipleObjects, FindFirstChangeNotification и FindNextChangeNotification.
Вооот.
Цитата:
Originally posted by bmw_mishuta
Тут вот проблемы - помогите, кто работал с этой фигней.
В общем, программка ждет, пока в заданной папке сделают что-то с каким-нибудь файлом (создали новый, удалили, переименовали) и дрыгается (в смысле выводит окошко на экран) когда такое действо совершается. Вопрос: а как определить имя этого самого файла, над которым совершается действие? Прогамма юзает функции WaitForMultipleObjects, FindFirstChangeNotification и FindNextChangeNotification.
Вооот.
Тут вот проблемы - помогите, кто работал с этой фигней.
В общем, программка ждет, пока в заданной папке сделают что-то с каким-нибудь файлом (создали новый, удалили, переименовали) и дрыгается (в смысле выводит окошко на экран) когда такое действо совершается. Вопрос: а как определить имя этого самого файла, над которым совершается действие? Прогамма юзает функции WaitForMultipleObjects, FindFirstChangeNotification и FindNextChangeNotification.
Вооот.
ну тут просто надо заново перечитать содержимое папки (или дерева).
зырить ченджез в папке исщё можна через CreateFile на эту папку:
HANDLE hDirectory = CreateFile("c:\\", FILE_LIST_DIRECTORY, FILE_SHARE_READ|FILE_SHARE_DELETE, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OVERLAPPED,NULL);
и затем ReadDirectoryChangesW на хэндл от CreateFile'а. Используй overlap'инг.