Spec-Zone.ru › Qt 5.12

Класс QTemporaryFile

Класс QTemporaryFile — это устройство ввода-вывода, работающее с временными файлами. Подробнее...

Заголовок: #include <QTemporaryFile>
qmake: QT += core
Наследует: QFile
  • Список всех членов, включая унаследованные
  • Устаревшие члены

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

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

QTemporaryFile()
QTemporaryFile(const QString &templateName)
QTemporaryFile(QObject *parent)
QTemporaryFile(const QString &templateName, QObject *parent)
virtual ~QTemporaryFile()
bool autoRemove() const
QString fileTemplate() const
bool open()
void setAutoRemove(bool b)
void setFileTemplate(const QString &name)

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

virtual QString fileName() const override
  • 15 открытых функций, унаследованных от QFile
  • 18 открытых функций, унаследованных от QFileDevice
  • 44 открытых функций, унаследованных от QIODevice
  • 32 открытых функций, унаследованных от QObject

Статические открытые члены

QTemporaryFile * createNativeFile(QFile &file)
QTemporaryFile * createNativeFile(const QString &fileName)
const QMetaObject staticMetaObject
  • 12 статических открытых членов, унаследованных от QFile
  • 10 статических открытых членов, унаследованных от QObject

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

virtual bool open(QIODevice::OpenMode flags) override
  • 3 защищенных функций, унаследованных от QFileDevice
  • 5 защищенных функций, унаследованных от QIODevice
  • 9 защищенных функций, унаследованных от QObject

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

  • 1 свойство, унаследованное от QObject
  • 1 открытый слот, унаследованный от QObject
  • 6 сигналов, унаследованных от QIODevice
  • 2 сигналов, унаследованных от QObject
  • 3 защищенных функций, унаследованных от QFileDevice
  • 5 защищенных функций, унаследованных от QIODevice
  • 9 защищенных функций, унаследованных от QObject

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

Класс QTemporaryFile — это устройство ввода-вывода, работающее с временными файлами.

QTemporaryFile используется для безопасного создания уникальных временных файлов. Сам файл создается вызовом open(). Имя временного файла гарантированно уникально (т.е. вы гарантированно не перезапишете существующий файл), а файл будет удалён при уничтожении объекта QTemporaryFile. Это важный приём, который предотвращает повреждение данных для приложений, хранящих данные во временных файлах. Имя файла либо автоматически генерируется, либо создаётся на основе шаблона, который передаётся конструктору QTemporaryFile.

Пример:

    // Within a function/method...

    QTemporaryFile file;
    if (file.open()) {
        // file.fileName() returns the unique file name
    }

    // The QTemporaryFile destructor removes the temporary file
    // as it goes out of scope.

Переоткрытие QTemporaryFile после вызова close() безопасно. Пока сам объект QTemporaryFile не уничтожен, уникальный временный файл будет существовать и храниться открытым внутри QTemporaryFile.

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

Временный файл будет иметь статическую часть имени и часть, вычисляемую для уникальности. Имя файла по умолчанию определяется из QCoreApplication::applicationName() (в противном случае qt_temp) и будет размещён в временной папке, возвращаемой QDir::tempPath(). Если вы указываете своё имя файла, относительный путь к файлу не будет помещён в временную папку по умолчанию, но будет относительным к текущей рабочей директории.

Указанные имена файлов могут содержать следующий шаблон XXXXXX (шесть заглавных букв "X"), который будет заменён автоматически сгенерированной частью имени файла. Обратите внимание, что шаблон чувствителен к регистру. Если шаблон отсутствует в имени файла, QTemporaryFile добавляет сгенерированную часть к предоставленному имени файла.

См. также QDir::tempPath() и QFile.

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

QTemporaryFile::QTemporaryFile()

Конструирует QTemporaryFile с файловым шаблоном, используя имя приложения, возвращаемое QCoreApplication::applicationName() (иначе qt_temp) и ".XXXXXX". Файл хранится во временной директории системы, QDir::tempPath().

См. также setFileTemplate() и QDir::tempPath().

QTemporaryFile::QTemporaryFile(const QString &templateName)

Конструирует QTemporaryFile с шаблоном имени файла templateName. При открытии временного файла это будет использоваться для создания уникального имени файла.

Если templateName не содержит XXXXXX, оно будет автоматически добавлено и использовано как динамическая часть имени файла.

Если templateName — относительный путь, путь будет относительным к текущей рабочей директории. Вы можете использовать QDir::tempPath() для построения templateName, если хотите использовать временную директорию системы.

См. также open() и fileTemplate().

QTemporaryFile::QTemporaryFile(QObject *parent)

Конструирует QTemporaryFile (с заданным parent) с файловым шаблоном, используя имя приложения, возвращаемое QCoreApplication::applicationName() (иначе qt_temp) и ".XXXXXX". Файл хранится во временной директории системы, QDir::tempPath().

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

QTemporaryFile::QTemporaryFile(const QString &templateName, QObject *parent)

Конструирует QTemporaryFile с шаблоном имени файла templateName и заданным parent. При открытии временного файла это будет использоваться для создания уникального имени файла.

Если templateName не содержит XXXXXX, оно будет автоматически добавлено и использовано как динамическая часть имени файла.

Если templateName — относительный путь, путь будет относительным к текущей рабочей директории. Вы можете использовать QDir::tempPath() для построения templateName, если хотите использовать временную директорию системы.

См. также open() и fileTemplate().

[virtual] QTemporaryFile::~QTemporaryFile()

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

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

bool QTemporaryFile::autoRemove() const

Возвращает true, если QTemporaryFile находится в режиме автоматического удаления. Режим автоматического удаления автоматически удалит имя файла с диска при уничтожении. Это очень упрощает создание объекта QTemporaryFile в стеке, заполнение его данными, чтение из него и, наконец, при возвращении из функции автоматическое очищение за собой.

Режим автоматического удаления включен по умолчанию.

См. также setAutoRemove() и remove().

[static] QTemporaryFile *QTemporaryFile::createNativeFile(QFile &file)

Если file ещё не является файлом с родным форматом, то QTemporaryFile создаётся в QDir::tempPath(), содержимое file копируется в него, и возвращается указатель на временный файл. Ничего не делает и возвращает 0 если file уже является файлом с родным форматом.

Например:

  QFile f(":/resources/file.txt");
  QTemporaryFile::createNativeFile(f); // Returns a pointer to a temporary file

  QFile f("/users/qt/file.txt");
  QTemporaryFile::createNativeFile(f); // Returns 0

См. также QFileInfo::isNativePath().

[static] QTemporaryFile *QTemporaryFile::createNativeFile(const QString &fileName)

Это перегруженная функция.

Работает с заданным fileName, а не с существующим объектом QFile.

[override virtual] QString QTemporaryFile::fileName() const

Переопределено из QFile::fileName().

Возвращает полное уникальное имя файла, на котором базируется объект QTemporaryFile. Эта строка равна null до открытия QTemporaryFile, после этого она будет содержать fileTemplate() плюс дополнительные символы для обеспечения уникальности.

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

QString QTemporaryFile::fileTemplate() const

Возвращает установленный шаблон файла. Шаблон файла по умолчанию будет называться qcoreappname.XXXXXX и будет размещён в QDir::tempPath().

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

bool QTemporaryFile::open()

QTemporaryFile всегда открывается в режиме QIODevice::ReadWrite, что позволяет легко получить доступ к данным в файле. Эта функция возвращает true при успешном выполнении и устанавливает fileName() в уникальное имя файла.

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

[override virtual protected] bool QTemporaryFile::open(QIODevice::OpenMode flags)

Переопределено из QFile::open().

Создаёт уникальное имя файла для временного файла и открывает его. Вы можете получить уникальное имя позже, вызвав fileName(). Файл гарантированно был создан этой функцией (т.е. он никогда не существовал ранее).

void QTemporaryFile::setAutoRemove(bool b)

Устанавливает QTemporaryFile в режим автоматического удаления, если b равно true.

Режим автоматического удаления включён по умолчанию.

Если вы установили данное свойство в false, убедитесь, что приложение предоставляет способ удаления файла после того, как он больше не нужен, включая передачу ответственности другому процессу. Всегда используйте функцию fileName() для получения имени и никогда не пытайтесь угадать имя, сгенерированное QTemporaryFile.

В некоторых системах, если fileName() не вызывается перед закрытием файла, временный файл может быть удалён независимо от состояния этого свойства. На это поведение не следует полагаться, поэтому в коде приложения следует либо вызвать fileName(), либо оставить функциональность автоматического удаления включенной.

См. также autoRemove() и remove().

void QTemporaryFile::setFileTemplate(const QString &name)

Устанавливает статическую часть имени файла в name. Если шаблон файла содержит XXXXXX, он будет автоматически заменён уникальной частью имени файла, в противном случае имя файла будет определено автоматически на основе указанной статической части.

Если name содержит относительный путь к файлу, путь будет относительным к текущей рабочей директории. Вы можете использовать QDir::tempPath() для построения name, если вы хотите использовать временную директорию системы.

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

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

Spec-Zone.ru

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