QFileSystemWatcher: обнаруживает удаленные & amp; добавлены файлы, но не изменены

Я разрабатываю приложение для Windows с помощью Qt, и мне нужно обнаружить изменения в определенной папке.
Поэтому я использовал QFileSystemWatcher и подключаю сигнал directoryChanged к функции, которая будет отправлять сообщение в случае изменений.

Проблема в том, что функция «slot», подключенная к directoryChanged, не вызывается, если я изменяю содержимое файла, а только когда файл или каталог удаляется или добавляется.

Однако в документации говорится, что этот сигнал испускается, когда «каталог по указанному пути» изменяется (например, при добавлении файла, модифицированный или удален) или удален с диска. «

У кого-нибудь есть объяснение?
Заранее спасибо =)

0

Решение

Согласно версии исходного кода Qt 4.8.2, следующим образом:

void QFileSystemWatcherPrivate::_q_directoryChanged(const QString &path, bool removed)
{
Q_Q(QFileSystemWatcher);
if (!directories.contains(path)) {
// perhaps the path was removed after a change was detected, but before we delivered the signal
return;
}
if (removed)
directories.removeAll(path);
emit q->directoryChanged(path);
}

Кажется, что directoryChanged испускает, когда файл удален, добавлен (для нового добавленного файла не содержится в каталогах) и переименован. Реализация не гарантирует обнаружение модификации содержимого файла. Надеюсь, это поможет: P

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]