Класс QFileSystemWatcher
Класс QFileSystemWatcher предоставляет интерфейс для отслеживания файлов и каталогов на предмет изменений. Подробнее...
| Заголовок: | #include <QFileSystemWatcher> |
| qmake: | QT += core |
| С момента: | Qt 4.2 |
| Наследует: | QObject |
Примечание: Все функции в этом классе являются реентерабельными.
Открытые функции
| QFileSystemWatcher(QObject *parent = Q_NULLPTR) | |
| QFileSystemWatcher(const QStringList &paths, QObject *parent = Q_NULLPTR) | |
| ~QFileSystemWatcher() | |
| bool | addPath(const QString &path) |
| QStringList | addPaths(const QStringList &paths) |
| QStringList | directories() const |
| QStringList | files() const |
| bool | removePath(const QString &path) |
| QStringList | removePaths(const QStringList &paths) |
- 32 открытых функций, унаследованных от QObject
Сигналы
| void | directoryChanged(const QString &path) |
| void | fileChanged(const QString &path) |
- 2 сигнала, унаследованные от QObject
Дополнительные унаследованные члены
- 1 свойство, унаследованное от QObject
- 1 открытый слот, унаследованный от QObject
- 11 статических открытых членов, унаследованных от QObject
- 9 защищенных функций, унаследованных от QObject
Подробное описание
Класс QFileSystemWatcher предоставляет интерфейс для отслеживания файлов и каталогов на предмет изменений.
QFileSystemWatcher отслеживает файловую систему на предмет изменений файлов и каталогов, наблюдая за указанным списком путей.
Вызовите addPath(), чтобы начать отслеживание определенного файла или каталога. Несколько путей можно добавить с помощью функции addPaths(). Существующие пути можно удалить с помощью функций removePath() и removePaths().
QFileSystemWatcher проверяет каждый добавленный путь. Файлы, добавленные в QFileSystemWatcher, можно получить с помощью функции files(), а каталоги — с помощью функции directories().
Сигнал fileChanged() генерируется, когда файл был изменен, переименован или удален с диска. Аналогично, сигнал directoryChanged() генерируется, когда каталог или его содержимое были изменены или удалены. Обратите внимание, что QFileSystemWatcher прекращает отслеживание файлов после их переименования или удаления с диска, и каталогов — после их удаления с диска.
-
Примечания:
- На системах, работающих на ядре Linux без поддержки inotify, файловые системы, содержащие отслеживаемые пути, нельзя размонтировать.
- Отслеживание файлов и каталогов на предмет изменений потребляет системные ресурсы. Это означает, что существует ограничение на количество файлов и каталогов, которые ваш процесс может одновременно отслеживать. Например, на всех вариантах BSD для каждого отслеживаемого файла требуется открытый дескриптор файла. Некоторые системы по умолчанию ограничивают количество открытых дескрипторов файлов до 256. Это означает, что addPath() и addPaths() будут неудачными, если ваш процесс попытается добавить более 256 файлов или каталогов к монитору файловой системы. Обратите также внимание, что ваш процесс может иметь открытыми другие дескрипторы файлов помимо тех, которые используются для отслеживаемых файлов, и эти другие открытые дескрипторы также учитываются в общей сумме. macOS использует другой бэкэнд и не сталкивается с этой проблемой.
Документация по функциям-членам
QFileSystemWatcher::QFileSystemWatcher(QObject *parent = Q_NULLPTR)
Создает новый объект наблюдателя файловой системы с заданным parent.
QFileSystemWatcher::QFileSystemWatcher(const QStringList &paths, QObject *parent = Q_NULLPTR)
Создает новый объект наблюдателя файловой системы с заданным parent, который отслеживает указанный список путей paths.
QFileSystemWatcher::~QFileSystemWatcher()
Уничтожает наблюдатель файловой системы.
bool QFileSystemWatcher::addPath(const QString &path)
Добавляет path к наблюдателю файловой системы, если path существует. Путь не добавляется, если он не существует или уже отслеживается наблюдателем файловой системы.
Если path указывает на каталог, сигнал directoryChanged() будет генерироваться при изменении или удалении path с диска; в противном случае сигнал fileChanged() генерируется при изменении, переименовании или удалении.
Если отслеживание прошло успешно, возвращается true.
Причина неудачного отслеживания обычно зависит от системы, но может включать в себя отсутствие ресурса, ошибки доступа или ограничение на общее количество отслеживаний, если оно существует на платформе.
Примечание: Может быть системное ограничение на количество файлов и каталогов, которые можно одновременно отслеживать. Если это ограничение достигнуто, path не будет отслеживаться, и возвращается false.
См. также addPaths() и removePath().
QStringList QFileSystemWatcher::addPaths(const QStringList &paths)
Добавляет каждый путь из paths к наблюдателю файловой системы. Пути не добавляются, если они не существуют или уже отслеживаются наблюдателем файловой системы.
Если путь указывает на каталог, сигнал directoryChanged() будет генерироваться при изменении или удалении пути с диска; в противном случае сигнал fileChanged() генерируется при изменении, переименовании или удалении.
Возвращаемое значение — список путей, которые не удалось отследить.
Причина неудачного отслеживания обычно зависит от системы, но может включать в себя отсутствие ресурса, ошибки доступа или ограничение на общее количество отслеживаний, если оно существует на платформе.
Примечание: Может быть системное ограничение на количество файлов и каталогов, которые можно одновременно отслеживать. Если это ограничение достигнуто, лишние paths не будут отслеживаться, и они будут добавлены в возвращаемый QStringList.
См. также addPath() и removePaths().
QStringList QFileSystemWatcher::directories() const
Возвращает список путей к каталогам, которые отслеживаются.
См. также files().
void QFileSystemWatcher::directoryChanged(const QString &path)
Этот сигнал генерируется, когда каталог по указанному path был изменен (например, когда файл добавлен или удален) или удален с диска. Обратите внимание, что если в течение короткого промежутка времени происходит несколько изменений, некоторые из них могут не сгенерировать этот сигнал. Однако последнее изменение в последовательности изменений всегда сгенерирует этот сигнал.
Примечание: Это закрытый сигнал. Он может использоваться в подключениях сигналов, но не может генерироваться пользователем.
См. также fileChanged().
void QFileSystemWatcher::fileChanged(const QString &path)
Этот сигнал генерируется, когда файл по указанному path был изменен, переименован или удален с диска.
Примечание: Это приватный сигнал. Он может использоваться в подключениях сигналов, но не может быть испущен пользователем.
См. также directoryChanged().
QStringList QFileSystemWatcher::files() const
Возвращает список путей к файлам, за которыми ведётся наблюдение.
См. также directories().
bool QFileSystemWatcher::removePath(const QString &path)
Удаляет указанный path из наблюдателя файловой системы.
Если наблюдение успешно удалено, возвращается true.
Причины неудачного удаления наблюдения обычно зависят от системы, но могут быть связаны, например, с тем, что путь уже был удалён.
См. также removePaths() и addPath().
QStringList QFileSystemWatcher::removePaths(const QStringList &paths)
Удаляет указанные paths из наблюдателя файловой системы.
Возвращаемое значение — список путей, которые не удалось успешно отследить.
Причины неудачного удаления наблюдения обычно зависят от системы, но могут быть связаны, например, с тем, что путь уже был удалён.
См. также removePath() и addPaths().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qfilesystemwatcher.html