У кого-либо есть подобный FileSystemWatcher класс в C++/WinAPI?

Мне нужен аналог FileSystemWatcher .NET в необработанном C++/WinAPI. Я почти начал кодировать тот сам с помощью FindFirstChangeNotification/FindNextChangeNotification, но тогда мне пришло в голову, что я - вероятно, не первый, кому нужно это, и возможно кто-то будет готов совместно использовать.

Идеально то, в чем я нуждаюсь, является классом, который может использоваться следующим образом:

FileWatcher fw;
fw.startWatching("C:\MYDIR", "filename.dat", 
     FileWatcher::SIZE | FileWatcher::LAST_WRITE,
     &myChangeHandler);
...
fw.stopWatching();

Или если это использовало бы что-то как повышение:: сигнал это было бы еще лучше. Но, никакие зависимости кроме Стандартной Библиотеки, повышения и необработанного WinAPI. Спасибо!

11
задан Alex Jenter 21 January 2010 в 06:13
поделиться

2 ответа

А как же функция ReadDirectoryChangesW?

http://msdn.microsoft.com/en-us/library/aa365465(VS.85).aspx

Она хранит уведомления в буфере, чтобы вы не пропустили никаких изменений (если только буфер не переполнен)

.
6
ответ дан 3 December 2019 в 08:55
поделиться

здесь есть какой-то код доменного домена здесь Отказ Мой нынешний проект использует это (унаследовано от предыдущих разработчиков). Это работает довольно хорошо, но мы пропускаем уведомления по причинам, которые неясно (и, возможно, не вызваны этим кодом).

Обратите внимание, что API Win32 здесь имеет некоторые ограничения, которые затрудняют / невозможно избежать отсутствия уведомлений. Фон и предполагаемый рабочий раунд для API - это здесь

4
ответ дан 3 December 2019 в 08:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: