Spec-Zone.ru › Qt 5.6

Класс QFileDevice

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

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

QFile и QSaveFile

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

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

Открытые типы

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

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

~QFileDevice()
Ошибка файла error() const
виртуальная QString fileName() const
bool flush()
int handle() const
uchar * map(qint64 offset, qint64 size, MemoryMapFlags flags = NoOptions)
виртуальные Разрешения permissions() const
виртуальный bool resize(qint64 sz)
виртуальный bool setPermissions(Permissions permissions)
bool unmap(uchar *address)
void unsetError()

Переопределенные открытые функции

виртуальный bool atEnd() const
виртуальный void close()
виртуальный bool isSequential() const
виртуальный qint64 pos() const
виртуальный bool seek(qint64 pos)
виртуальный qint64 size() const
  • 33 открытые функции, унаследованные от QIODevice
  • 31 открытые функции, унаследованные от QObject

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

виртуальный qint64 readData(char *data, qint64 len)
виртуальный qint64 readLineData(char *data, qint64 maxlen)
виртуальный qint64 writeData(const char *data, qint64 len)
  • 5 защищенных функций унаследованы от QIODevice
  • 9 защищенных функций унаследованы от QObject

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

  • 1 свойство унаследовано от QObject
  • 1 публичный слот унаследован от QObject
  • 4 сигнала унаследованы от QIODevice
  • 2 сигнала унаследованы от QObject
  • 11 статических публичных членов унаследованы от QObject
  • 5 защищенных функций унаследованы от QIODevice
  • 9 защищенных функций унаследованы от QObject

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

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

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.

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

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

enum QFileDevice::MemoryMapFlags

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

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

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

enum QFileDevice::Permissionflags QFileDevice::Permissions

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

Константа Значение Описание
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.

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

QFileDevice::~QFileDevice()

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

[virtual] bool QFileDevice::atEnd() const

Переопределено из QIODevice::atEnd().

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

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

[virtual] void QFileDevice::close()

Переопределено из QIODevice::close().

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

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

FileError QFileDevice::error() const

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

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

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

[virtual] QString QFileDevice::fileName() const

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

bool QFileDevice::flush()

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

int QFileDevice::handle() const

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

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

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

Эта функция не поддерживается на Windows CE.

См. также QSocketNotifier.

[virtual] bool QFileDevice::isSequential() const

Переопределено из QIODevice::isSequential().

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

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

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

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

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

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

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

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

Примечание: На Windows CE 5.0 файл будет закрыт перед картированием.

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

[virtual] Permissions QFileDevice::permissions() const

Возвращает полную объединенную комбинацию QFile::Permission для файла.

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

[virtual] qint64 QFileDevice::pos() const

Переопределено из QIODevice::pos().

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

Переопределено из QIODevice::readData().

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

Переопределено из QIODevice::readLineData().

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

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

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

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

Переопределено из QIODevice::seek().

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

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

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

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

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

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

[virtual] qint64 QFileDevice::size() const

Переопределено из QIODevice::size().

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

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

bool QFileDevice::unmap(uchar *address)

Освобождает сопоставленную в памяти область по адресу address.

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

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

void QFileDevice::unsetError()

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

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

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

Переопределено из QIODevice::writeData().

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

Spec-Zone.ru

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