2014-10-17 3 views
0

Я использую QFileSystemWatcher для просмотра изменений в каталоге, который я установил в методе watcher->addPath("myPath").QFileSystemWatcher :: files() не возвращает список файлов

Когда я звоню watcher->directories() Я вижу myPath.

Но когда я звоню watcher->files(), я ничего не вижу. Я думал, что увижу файлы в каталоге, когда я использую этот метод.

Что делать, чтобы видеть файлы в каталоге?

ответ

2

QFileSystemWatcher предназначен для просмотра изменений в файловой системе.

Чтобы получить список файлов в каталоге, используйте QDir::entryList.

Пример:

QString files = QDir("c:\\").entryList(QDir::NoDotAndDotDot); 

Если вам нужно следить за изменениями в директории (добавлено/переименованы или удалены события файл) используется addPath с каталогом и слушать directoryChanged сигнала.
Если вам нужно посмотреть изменение содержимого файла, вы используете addPath с полным путем в файл и слушаете сигнал fileChanged.

Соответственно directories возвращает список добавленных вами каталогов и files возвращает список файлов, которые вы добавили.

+0

Я слушаю сигнал, который вы показываете, но мой слот не отвечает из-за пустого списка файлов - поэтому этот сигнал не выделяется при добавлении некоторых файлов в каталог :( –

+0

Нет ничего общего между 'directoryChanged' и метод 'files'. Используйте' QDir' для получения списка файлов. – Ezee

+0

спасибо большое :)) –