Spec-Zone.ru › Qt 5.15

Класс QTemporaryFile

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

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

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

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

QTemporaryFile(const QString &шаблонИмениФайла, QObject *родитель)
QTemporaryFile(QObject *родитель)
QTemporaryFile(const QString &шаблонИмениФайла)
QTemporaryFile()
virtual ~QTemporaryFile()
bool autoRemove() const
QString шаблонФайла() const
bool открыть()
void установитьАвтоУдаление(bool b)
void установитьШаблон(const QString &имя)

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

virtual QString имяФайла() const override

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

QTemporaryFile * создатьНативныйФайл(QFile &файл)
QTemporaryFile * создатьНативныйФайл(const QString &имяФайла)

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

virtual bool открыть(QIODevice::OpenMode флаги) override

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

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.

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

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

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

Примечание: В Linux QTemporaryFile будет пытаться создать безымянный временный файл. Если это удастся, open() вернет true, но exists() будет false. Если вы вызываете имяФайла() или любую функцию, которая ее вызывает, QTemporaryFile даст файлу имя, поэтому большинство приложений не увидят разницы.

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

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

QTemporaryFile::QTemporaryFile(const QString &шаблонИмениФайла, QObject *родитель)

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

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

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

См. также открыть() и шаблонФайла().

QTemporaryFile::QTemporaryFile(QObject *родитель)

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

См. также установитьШаблон().

QTemporaryFile::QTemporaryFile(const QString &шаблонИмениФайла)

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

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

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

См. также открыть() и шаблонФайла().

QTemporaryFile::QTemporaryFile()

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

См. также установитьШаблон() и QDir::tempPath().

[virtual] QTemporaryFile::~QTemporaryFile()

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

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

bool QTemporaryFile::autoRemove() const

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

Автоматическое удаление включено по умолчанию.

См. также установитьАвтоУдаление() и remove().

[static] QTemporaryFile *QTemporaryFile::createNativeFile(QFile &файл)

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

Например:

  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) вместо существующего объекта QFile.

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

Переопределяет: QFile::fileName() const.

Возвращает полное уникальное имя файла, используемого объектом 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(QIODevice::OpenMode mode).

Создаёт уникальное имя файла для временного файла и открывает его. Уникальное имя можно получить позднее, вызвав 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.15/qtemporaryfile.html

Spec-Zone.ru

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