В настоящее время я использую QFileSystemWatcher для мониторинга каталога на предмет любых изменений в файлах, содержащихся в нем. Это прекрасно работает, но только когда я изменяю эти файлы с помощью определенных программ.
Например, когда я изменяю файл с помощью Qt Creator, QFileSytemWatcher срабатывает правильно. Если я редактирую и сохраняю тот же самый файл точно таким же образом, используя, скажем, Notepad ++ или Eclipse, это не приводит к изменению файла.
Я вполне уверен, что это связано с тем, как ОС / программы обрабатывают буферизацию записи. К сожалению, моя программа не контролирует процесс записи; любая программа может изменить файлы, которые я отслеживаю. В результате, единственный способ, которым я могу придумать надежное обнаружение изменений в файлах, — это использовать обычный таймер для сканирования изменений файлов (что гораздо менее эффективно, чем ОС, наблюдающая за мной файлы). Есть ли лучшие способы сделать это? Любая помощь приветствуется.
Задача ещё не решена.
Других решений пока нет …