Spec-Zone.ru › Qt 5.15

Класс QFileDevice

Класс QFileDevice предоставляет интерфейс для чтения из и записи в открытые файлы. Подробнее...

Заголовок: #include <QFileDevice>
qmake: QT += core
С тех пор: Qt 5.0
Наследует: QIODevice
Наследуется:

QFile и QSaveFile

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

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

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

Типы публичного доступа

перечисление Ошибка файла { Нет ошибки, Ошибка чтения, Ошибка записи, Критическая ошибка, Ошибка ресурса, …, Ошибка копирования }
перечисление Флаг дескриптора файла { Автоматически закрывать, Не закрывать }
флаги Флаги дескриптора файла
перечисление Время файла { Время доступа к файлу, Время создания файла, Время изменения метаданных файла, Время изменения файла }
перечисление Флаги отображения в памяти { Без опций, Опция приватного отображения }
перечисление Разрешения { Чтение владельцем, Запись владельцем, Исполнение владельцем, Чтение пользователем, Запись пользователем, …, Исполнение другим }
флаги Разрешения

Функции публичного доступа

виртуальный ~QFileDevice()
QFileDevice::Ошибка файла ошибка() const
виртуальный QString имяФайла() const
QDateTime времяФайла(QFileDevice::Время файла time) const
bool сброс()
int дескриптор() const
uchar * отобразить(qint64 offset, qint64 size, QFileDevice::Флаги отображения в памяти flags = Без опций)
виртуальный QFileDevice::Разрешения разрешения() const
виртуальный bool изменитьРазмер(qint64 sz)
bool установитьВремяФайла(const QDateTime &newDate, QFileDevice::Время файла fileTime)
виртуальный bool установитьРазрешения(QFileDevice::Разрешения permissions)
bool освободитьОтображение(uchar *address)
void сброситьОшибка()

Реализованные функции публичного доступа

виртуальный bool конецФайла() const override
виртуальный void закрыть() override
виртуальный bool последовательный() const override
виртуальный qint64 позиция() const override
виртуальный bool переместитьПозицию(qint64 pos) override
виртуальный qint64 размер() const override

Переопределённые защищённые функции

virtual qint64 readData(char *data, qint64 len) override
virtual qint64 readLineData(char *data, qint64 maxlen) override
virtual qint64 writeData(const char *data, qint64 len) override

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

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

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

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

перечисление QFileDevice::FileError

Это перечисление описывает ошибки, которые могут быть возвращены функцией error().

Постоянная Значение Описание
QFileDevice::NoError 0 Ошибка не произошла.
QFileDevice::ReadError 1 При чтении из файла произошла ошибка.
QFileDevice::WriteError 2 При записи в файл произошла ошибка.
QFileDevice::FatalError 3 Произошла критическая ошибка.
QFileDevice::ResourceError 4 Недостаточно ресурсов (например, слишком много открытых файлов, недостаточно памяти и т. д.)
QFileDevice::OpenError 5 Файл не удалось открыть.
QFileDevice::AbortError 6 Операция была прервана.
QFileDevice::TimeOutError 7 Произошло истечение времени ожидания.
QFileDevice::UnspecifiedError 8 Произошла неопределённая ошибка.
QFileDevice::RemoveError 9 Файл не удалось удалить.
QFileDevice::RenameError 10 Файл не удалось переименовать.
QFileDevice::PositionError 11 Не удалось изменить позицию в файле.
QFileDevice::ResizeError 12 Не удалось изменить размер файла.
QFileDevice::PermissionsError 13 Не удалось получить доступ к файлу.
QFileDevice::CopyError 14 Не удалось скопировать файл.

перечисление QFileDevice::FileHandleFlagфлаги QFileDevice::FileHandleFlags

Это перечисление используется при открытии файла для задания дополнительных опций, которые применяются только к файлам, а не к общему QIODevice.

Постоянная Значение Описание
QFileDevice::AutoCloseHandle 0x0001 Дескриптор файла, переданный в open(), должен быть закрыт с помощью close(). По умолчанию close просто сбрасывает буфер файла, и приложение отвечает за закрытие дескриптора файла. При открытии файла по имени этот флаг игнорируется, так как Qt всегда владеет дескриптором файла и должен его закрыть.
QFileDevice::DontCloseHandle 0 Если явно не закрыт, базовый дескриптор файла остается открытым при уничтожении объекта QFile.

Тип FileHandleFlags — это псевдоним для QFlags<FileHandleFlag>. Он хранит логическое ИЛИ сочетание значений FileHandleFlag.

перечисление QFileDevice::FileTime

Это перечисление используется функциями fileTime() и setFileTime().

Постоянная Значение Описание
QFileDevice::FileAccessTime 0 Время последнего доступа к файлу (например, чтения или записи).
QFileDevice::FileBirthTime 1 Время создания файла (может не поддерживаться в UNIX).
QFileDevice::FileMetadataChangeTime 2 Время последнего изменения метаданных файла.
QFileDevice::FileModificationTime 3 Время последнего изменения файла.

Это перечисление было введено или изменено в Qt 5.10.

См. также setFileTime(), fileTime() и QFileInfo::fileTime().

перечисление QFileDevice::MemoryMapFlags

Это перечисление описывает специальные параметры, которые могут использоваться функцией map().

Постоянная Значение Описание
QFileDevice::NoOptions 0 Нет параметров.
QFileDevice::MapPrivateOption 0x0001 Карта памяти будет личной, поэтому любые изменения не будут видны другим процессам и не будут записаны на диск. Все такие изменения будут потеряны при размонтировании памяти. Не определено, будут ли изменения, внесенные в файл после создания карты, видны через карту памяти. Это значение перечисления было введено в Qt 5.4.

Это перечисление было введено или изменено в Qt 4.4.

перечисление QFileDevice::Permissionфлаги QFileDevice::Permissions

Это перечисление используется функцией permission() для получения разрешений и владельца файла. Значения можно объединять с помощью оператора OR для проверки нескольких разрешений и владельцев.

Постоянная Значение Описание
QFileDevice::ReadOwner 0x4000 Файл читаем владельцем файла.
QFileDevice::WriteOwner 0x2000 Файл записываем владельцем файла.
QFileDevice::ExeOwner 0x1000 Файл исполняем владельцем файла.
QFileDevice::ReadUser 0x0400 Файл читаем пользователем.
QFileDevice::WriteUser 0x0200 Файл записываем пользователем.
QFileDevice::ExeUser 0x0100 Файл исполняем пользователем.
QFileDevice::ReadGroup 0x0040 Файл читаем группой.
QFileDevice::WriteGroup 0x0020 Файл записываем группой.
QFileDevice::ExeGroup 0x0010 Файл исполняем группой.
QFileDevice::ReadOther 0x0004 Файл читаем всем.
QFileDevice::WriteOther 0x0002 Файл записываем всем.
QFileDevice::ExeOther 0x0001 Файл исполняем всем.

Предупреждение: Из-за различий в платформах, поддерживаемых Qt, семантика ReadUser, WriteUser и ExeUser зависит от платформы: в Unix возвращаются права владельца файла, а в Windows — права текущего пользователя. Это поведение может измениться в будущих версиях Qt.

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

extern Q_CORE_EXPORT int qt_ntfs_permission_lookup;

Затем проверка прав включается и выключается путём инкремента и декремента qt_ntfs_permission_lookup на 1.

qt_ntfs_permission_lookup++; // turn checking on
qt_ntfs_permission_lookup--; // turn it off again

Тип Permissions — это псевдоним для QFlags<Permission>. Он хранит логическое ИЛИ сочетание значений Permission.

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

[virtual] QFileDevice::~QFileDevice()

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

[override virtual] bool QFileDevice::atEnd() const

Переопределяет: QIODevice::atEnd() const.

Возвращает true, если достигнут конец файла; в противном случае возвращает false.

Для пустых обычных файлов в Unix (например, тех, что в /proc), эта функция возвращает true, так как файловая система сообщает, что размер такого файла равен 0. Поэтому не следует полагаться на atEnd() при чтении данных из такого файла, а вместо этого следует вызывать read(), пока не будет прочитан больше никаких данных.

[override virtual] void QFileDevice::close()

Переопределяет: QIODevice::close().

Вызывает QFileDevice::flush() и закрывает файл. Ошибки flush игнорируются.

См. также QIODevice::close().

QFileDevice::FileError QFileDevice::error() const

Возвращает код ошибки файла.

Устройство ввода-вывода возвращает код ошибки. Например, если open() возвращает false, или операция чтения/записи возвращает -1, можно вызвать эту функцию, чтобы узнать причину неудачи операции.

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

[virtual] QString QFileDevice::fileName() const

Возвращает имя файла. По умолчанию в QFileDevice возвращается пустая строка.

QDateTime QFileDevice::fileTime(QFileDevice::FileTime time) const

Возвращает время файла, указанное параметром time. Если время определить невозможно, возвращает QDateTime() (некорректное время).

Эта функция была введена в Qt 5.10.

См. также setFileTime(), FileTime и QDateTime::isValid().

bool QFileDevice::flush()

Сбрасывает в файл все буферизованные данные. Возвращает true при успехе; в противном случае возвращает false.

int QFileDevice::handle() const

Возвращает дескриптор файла.

Это целое число, подходящее для использования с функциями C-библиотеки, такими как fdopen() и fcntl(). На системах, использующих дескрипторы файлов для сокетов (т. е. системы Unix, но не Windows), дескриптор также можно использовать с QSocketNotifier.

Если файл не открыт или возникла ошибка, handle() возвращает -1.

См. также QSocketNotifier.

[override virtual] bool QFileDevice::isSequential() const

Переопределяет: QIODevice::isSequential() const.

Возвращает true если файл можно обрабатывать только последовательно; в противном случае возвращает false.

Большинство файлов поддерживают произвольный доступ, но некоторые специальные файлы могут его не поддерживать.

См. также QIODevice::isSequential().

uchar *QFileDevice::map(qint64 offset, qint64 size, QFileDevice::MemoryMapFlags flags = NoOptions)

Карта размером size байт файла в памяти, начиная с offset. Файл должен быть открыт для успешного отображения, но файл не обязательно должен оставаться открытым после отображения памяти. При уничтожении QFile или открытии нового файла с этим объектом все карты, которые не были отображены, будут автоматически отображены.

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

Любые параметры отображения могут быть переданы через flags.

Возвращает указатель на память или nullptr в случае ошибки.

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

[virtual] QFileDevice::Permissions QFileDevice::permissions() const

Возвращает полное логическое ИЛИ сочетание QFile::Permission для файла.

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

[override virtual] qint64 QFileDevice::pos() const

Реализует: QIODevice::pos() const.

[override virtual protected] qint64 QFileDevice::readData(char *data, qint64 len)

Реализует: QIODevice::readData(char *data, qint64 maxSize).

[override virtual protected] qint64 QFileDevice::readLineData(char *data, qint64 maxlen)

Реализует: QIODevice::readLineData(char *data, qint64 maxSize).

[virtual] bool QFileDevice::resize(qint64 sz)

Устанавливает размер файла (в байтах) sz. Возвращает true если изменение размера прошло успешно; в противном случае false. Если sz больше, чем текущий размер файла, новые байты будут установлены в 0; если sz меньше, файл просто усекается.

Предупреждение: Эта функция может завершиться неудачей, если файла не существует.

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

[override virtual] bool QFileDevice::seek(qint64 pos)

Реализует: QIODevice::seek(qint64 pos).

Для устройств с произвольным доступом эта функция устанавливает текущую позицию в pos, возвращая true при успехе или false в случае ошибки. Для последовательных устройств поведение по умолчанию — ничего не делать и возвращать false.

Переход за пределы конца файла: если позиция находится за пределами конца файла, то seek() немедленно не расширит файл. Если выполняется запись в этой позиции, файл будет расширен. Содержимое файла между предыдущим концом файла и новыми записанными данными НЕОПРЕДЕЛЁНО и зависит от платформы и файловой системы.

bool QFileDevice::setFileTime(const QDateTime &newDate, QFileDevice::FileTime fileTime)

Устанавливает время файла, указанное fileTime, в newDate, возвращая true в случае успеха; в противном случае возвращает false.

Примечание: Файл должен быть открыт для использования этой функции.

Эта функция была добавлена в Qt 5.10.

См. также fileTime() и FileTime.

[virtual] bool QFileDevice::setPermissions(QFileDevice::Permissions permissions)

Устанавливает разрешения файла на заданные permissions. Возвращает true при успехе или false если разрешения не могут быть изменены.

Предупреждение: Эта функция не манипулирует ACL, что может ограничить её эффективность.

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

[override virtual] qint64 QFileDevice::size() const

Реализует: QIODevice::size() const.

Возвращает размер файла.

Для обычных пустых файлов в Unix (например, тех, что в /proc), эта функция возвращает 0; содержимое такого файла генерируется по требованию при вызове read().

bool QFileDevice::unmap(uchar *address)

Отменяет отображение памяти address.

Возвращает true если отображение отменено успешно; false в противном случае.

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

void QFileDevice::unsetError()

Устанавливает ошибку файла в QFileDevice::NoError.

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

[override virtual protected] qint64 QFileDevice::writeData(const char *data, qint64 len)

Реализует: QIODevice::writeData(const char *data, qint64 maxSize).

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qfiledevice.html

Spec-Zone.ru

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