Spec-Zone.ru › Qt 5.13

Класс QFileSystemWatcher

Класс QFileSystemWatcher предоставляет интерфейс для мониторинга файлов и каталогов на предмет изменений. Подробнее...

Заголовок: #include <QFileSystemWatcher>
qmake: QT += core
С момента: Qt 4.2
Наследует: QObject

Этот класс был представлен в Qt 4.2.

  • Список всех членов, включая унаследованные

Примечание: Все функции в этом классе являются реентерабельными.

Открытые функции

QFileSystemWatcher(const QStringList &paths, QObject *parent = nullptr)
QFileSystemWatcher(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)

Сигналы

void directoryChanged(const QString &path)
void fileChanged(const QString &path)

Подробное описание

QFileSystemWatcher отслеживает файловую систему на предмет изменений файлов и каталогов, наблюдая за заданным списком путей.

Вызовите addPath(), чтобы начать наблюдение за конкретным файлом или каталогом. Несколько путей можно добавить с помощью функции addPaths(). Существующие пути можно удалить с помощью функций removePath() и removePaths().

QFileSystemWatcher анализирует каждый добавленный к нему путь. Файлы, которые были добавлены в QFileSystemWatcher, можно получить с помощью функции files(), а каталоги — с помощью функции directories().

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

  • Примечания:
    • На системах, работающих с ядром Linux без поддержки inotify, файловые системы, содержащие отслеживаемые пути, не могут быть размонтированы.
    • Мониторинг файлов и каталогов на предмет изменений потребляет системные ресурсы. Это подразумевает ограничение на количество файлов и каталогов, которые ваш процесс может одновременно отслеживать. Например, на всех вариантах BSD для каждого отслеживаемого файла требуется открытый дескриптор файла. Некоторые системы ограничивают количество открытых дескрипторов файлов 256 по умолчанию. Это означает, что addPath() и addPaths() завершатся неудачей, если ваш процесс попытается добавить более 256 файлов или каталогов в монитор файловой системы. Также обратите внимание, что ваш процесс может иметь открытые дескрипторы файлов помимо дескрипторов для отслеживаемых файлов, и эти другие открытые дескрипторы также учитываются в общей сумме. macOS использует другой бэкэнд и не страдает от этой проблемы.

См. также QFile и QDir.

Документация по функциям-членам

QFileSystemWatcher::QFileSystemWatcher(const QStringList &paths, QObject *parent = nullptr)

Создаёт новый объект наблюдателя файловой системы с заданным parent, который отслеживает указанный список paths.

QFileSystemWatcher::QFileSystemWatcher(QObject *parent = nullptr)

Создаёт новый объект наблюдателя файловой системы с заданным parent.

[signal] void QFileSystemWatcher::directoryChanged(const QString &path)

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

Примечание: Это приватный сигнал. Он может использоваться в соединениях сигналов, но не может генерироваться пользователем.

См. также fileChanged().

[signal] void QFileSystemWatcher::fileChanged(const QString &path)

Этот сигнал генерируется, когда файл по указанному пути path изменяется, переименовывается или удаляется с диска.

Примечание: Это приватный сигнал. Он может использоваться в соединениях сигналов, но не может генерироваться пользователем.

См. также directoryChanged().

[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().

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.13/qfilesystemwatcher.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API