Spec-Zone.ru › Qt 5.11

Класс 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

Дополнительные унаследованные члены

  • 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 использует другой бэкенд и не страдает от этой проблемы.

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

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

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.

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

Примечание: Возможно, существует системно-зависимое ограничение на количество файлов и каталогов, которые могут быть одновременно отслеживаемы.

См. также 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/archives/qt-5.11/qfilesystemwatcher.html

Spec-Zone.ru

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