2014-07-03 3 views
1

У меня есть много каталогов, которые я должен синхронизировать с sqlite db. База данных должна всегда хранить содержимое файлов в этих каталогах. Для этого я создал поток (самый низкий приоритет), который постоянно ищет изменения в каталогах. Однако этот поток использует 100% процессора одного ядра. Есть ли лучший способ синхронизации файлов? Может быть, слушатель, который генерирует сигнал, когда файл будет создан или удален?Синхронизировать файлы с базой данных sqlite qt C++

Спасибо, Привет Andrea

ответ

3

Вы можете использовать QFileSystemWatcher.

С Qt Docs:

Класс QFileSystemWatcher предоставляет интерфейс для мониторинга файлов и каталогов для изменений. QFileSystemWatcher контролирует файловую систему для изменения файлов и каталогов, просматривая список указанных путей. Сигнал fileChanged() генерируется, когда файл был изменен, переименован или удален с диска. Аналогично, сигнал directoryChanged() испускается, когда каталог или его содержимое модифицируются или удаляются. Обратите внимание, что QFileSystemWatcher останавливает мониторинг файлов после их переименования или удаления с диска и каталогов после их удаления с диска.

Смежные вопросы