Я на самом деле создавал эту систему раньше для использования в коммерческой кодовой базе C ++ - если вам не нужны все странные вещи под солнцем, системы Windows и POSIX имеют много общего, которое вы можете абстрагировать. 1001 *
POSIX: используйте inotify - это целая система, буквально построенная для этой работы.
Windows: используйте «изменить события». Вы должны создать больше клея и составлять отчеты сами (все API, которые вам нужны, доступны, просто вам не будет дано уведомление о 1-stop-shopping inotify).
Общие сведения, которые вы можете обнаружить в «ветке уведомлений» для пересылки событий:
1) Практически любая инвазивная операция boost :: filesystem поддерживает, за (возможно), исключением изменения прав доступа. Это такие вещи, как перемещение, создание, удаление, копирование папок и файлов.
2) Читает и пишет в файлы (особенно пишет). Имейте в виду, что если вы используете асинхронный ввод-вывод, уведомления могут отображаться не в порядке.
3) Когда появляется новый том, например, кто-то подключает флешку.
inotify особенно дает вам безумный уровень детального контроля, в отличие от Windows. С помощью inotify вы можете буквально отслеживать все, что файловая система делает практически в реальном времени, если вы действительно этого хотите. Я знаю, что # 3 возможен с обоими без опроса, но имейте в виду, что это может быть очень сложно заставить работать правильно - в любой системе.