Spec-Zone.ru › Qt 5.6

Класс 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)
  • 31 открытых функций, унаследованных от 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, файловые системы, содержащие отслеживаемые пути, не могут быть размонтированы.

Примечание: Windows CE по умолчанию не поддерживает мониторинг каталогов, так как это зависит от установленного драйвера файловой системы.

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

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

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

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() генерируется при изменении, переименовании или удалении path.

Если отслеживание прошло успешно, возвращается 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/archives/qt-5.6/qfilesystemwatcher.html

Spec-Zone.ru

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