Класс QFileSystemWatcher
Класс QFileSystemWatcher предоставляет интерфейс для отслеживания файлов и каталогов на предмет изменений. Подробнее...
| Заголовок: | #include <QFileSystemWatcher> |
| qmake: | QT += core |
| С тех пор: | Qt 4.2 |
| Наследует: | QObject |
Примечание: Все функции в этом классе являются реентерабельными.
Открытые функции
| QFileSystemWatcher(QObject *parent = nullptr) | |
| QFileSystemWatcher(const QStringList &paths, QObject *parent = nullptr) | |
| virtual | ~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
Статические открытые члены
| const QMetaObject | staticMetaObject |
- 10 статических открытых членов, унаследованных от QObject
Дополнительные унаследованные члены
- 1 свойство, унаследованное от QObject
- 1 открытый слот, унаследованный от QObject
- 9 защищённых функций, унаследованных от QObject
Подробное описание
Класс QFileSystemWatcher предоставляет интерфейс для отслеживания файлов и каталогов на предмет изменений.
QFileSystemWatcher отслеживает файловую систему на предмет изменений файлов и каталогов, наблюдая за списком указанных путей.
Вызовите addPath(), чтобы наблюдать за определённым файлом или каталогом. Несколько путей можно добавить с помощью функции addPaths(). Существующие пути можно удалить, используя функции removePath() и removePaths().
QFileSystemWatcher проверяет каждый добавленный путь. Добавленные файлы можно получить с помощью функции files(), а каталоги — с помощью функции directories().
Сигнал fileChanged() генерируется, когда файл был изменён, переименован или удалён с диска. Аналогично, сигнал directoryChanged() генерируется, когда каталог или его содержимое были изменены или удалены. Обратите внимание, что QFileSystemWatcher прекращает отслеживание файлов после их переименования или удаления с диска, и каталогов — после удаления с диска.
-
Примечания:
- В системах, работающих на ядре Linux без поддержки inotify, файловые системы, содержащие отслеживаемые пути, не могут быть размонтированы.
- Действие отслеживания файлов и каталогов на предмет изменений потребляет системные ресурсы. Это подразумевает ограничение на количество файлов и каталогов, которые ваш процесс может одновременно отслеживать. Например, на всех BSD-системах для каждого отслеживаемого файла требуется открытый дескриптор файла. Некоторые системы ограничивают количество открытых дескрипторов файла до 256 по умолчанию. Это означает, что addPath() и addPaths() завершатся неудачей, если ваш процесс попытается добавить более 256 файлов или каталогов в монитор файловой системы. Обратите также внимание, что ваш процесс может иметь открытые дескрипторы файлов помимо тех, которые используются для отслеживаемых файлов, и эти другие открытые дескрипторы также учитываются в общей сумме. macOS использует другой бэкенд и не сталкивается с этой проблемой.
Документация по функциям-членам
QFileSystemWatcher::QFileSystemWatcher(QObject *parent = nullptr)
Создаёт новый объект наблюдателя файловой системы с заданным parent.
QFileSystemWatcher::QFileSystemWatcher(const QStringList &paths, QObject *parent = nullptr)
Создаёт новый объект наблюдателя файловой системы с заданным parent, который отслеживает указанный список paths.
[virtual] QFileSystemWatcher::~QFileSystemWatcher()
Удаляет наблюдатель файловой системы.
bool QFileSystemWatcher::addPath(const QString &path)
Добавляет path в наблюдатель файловой системы, если path существует. Путь не добавляется, если он не существует или уже отслеживается наблюдателем файловой системы.
Если path указывает на каталог, сигнал directoryChanged() будет сгенерирован, когда path будет изменён или удалён с диска; в противном случае, сигнал fileChanged() генерируется, когда path изменён, переименован или удалён.
Если отслеживание прошло успешно, возвращается true.
Причины неудачи отслеживания, как правило, зависят от системы, но могут включать отсутствие ресурса, сбои доступа или ограничение по общему количеству отслеживаний, если оно существует на платформе.
Примечание: Может быть системное ограничение на количество файлов и каталогов, которые можно одновременно отслеживать. Если это ограничение достигнуто, path не будет отслеживаться, и возвращается false.
См. также addPaths() и removePath().
QStringList QFileSystemWatcher::addPaths(const QStringList &paths)
Добавляет каждый путь из paths в наблюдатель файловой системы. Пути не добавляются, если они не существуют или уже отслеживаются наблюдателем файловой системы.
Если путь указывает на каталог, сигнал directoryChanged() будет сгенерирован, когда путь будет изменён или удалён с диска; в противном случае сигнал fileChanged() генерируется, когда путь изменён, переименован или удалён.
Возвращаемое значение — список путей, которые не удалось отследить.
Причины неудачи отслеживания, как правило, зависят от системы, но могут включать отсутствие ресурса, сбои доступа или ограничение по общему количеству отслеживаний, если оно существует на платформе.
Примечание: Может быть системное ограничение на количество файлов и каталогов, которые можно одновременно отслеживать. Если это ограничение достигнуто, избыточные paths не будут отслеживаться, и они будут добавлены в возвращаемый QStringList.
См. также addPath() и removePaths().
QStringList QFileSystemWatcher::directories() const
Возвращает список путей к каталогам, которые отслеживаются.
См. также files().
[signal] void QFileSystemWatcher::directoryChanged(const QString &path)
Этот сигнал генерируется, когда каталог по указанному пути path изменён (например, когда файл добавлен или удалён) или удалён с диска. Обратите внимание, что если за короткий период времени произошло несколько изменений, некоторые из них могут не сгенерировать этот сигнал. Однако последнее изменение в последовательности изменений всегда сгенерирует этот сигнал.
Примечание: Это частный сигнал. Он может использоваться в подключениях сигналов, но не может быть сгенерирован пользователем.
См. также fileChanged().
[signal] 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.12/qfilesystemwatcher.html