Мониторинг изменений в папке. Или как WinExplorer узнает об изменениях?
Поделитесь, как сделать мониторинг изменений в папке или на всем диске. Что бы приложение получало информацию не только о факте изменения, но и о содержании его?
Я так понимаю, как-то так работает WinExplorer.
Спосибо!
Сергей
Поделитесь, как сделать мониторинг изменений в папке или на всем диске. [/QUOTE]
Нужно когдато было из своего приложения контроллировать удаление файлов. Написал файлик CheckDiskChanges.cpp который использует 3 метода контроля:
1. Перехватывал ф-ции удаления DeleteFileW, DeleteFileA и ZwDeleteFile. Для перехвата воспльзовался API от Microsoft'a, а именно - Detours API. Так проще. Причём использовал уже устаревшую версию 1.5.
Скорее всего это интересовать не будет, так что нужно удалить использование этого API.
2. Также пользовался ф-цией ReadDirectoryChangesW. С её помощью можно узнать что в каталоге были изменения, а какие - нельзя. Подробнее - см. в SDK.
3. Ну и лучший вариант - это ф-ции FindFirstChangeNotification и FindNextChangeNotification. При их использовании можно указать какие конкретно изменения будут интересовать. За подробностями - в SDK.
Сергей