QTemporaryFile

Автор: | 29 июля, 2019

Работа с временными файлами QTemporaryFile

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

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

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

Фрагмент кода для примера:

#include <QTemporaryFile>
     QTemporaryFile * file = new QTemporaryFile;
     if (file->open()) {

         file->write(QString("test").toUtf8());
         file->flush();
         file->seek(0);

         qDebug() << file->readAll();
     }

     delete file;

 QTemporaryFile всегда открывается как ReadWrite и является устройством произвольного доступа, что означает, что после записи данных необходимо либо закрыть и повторно открыть либо перейти в начало файла, чтобы прочитать его. Поэтому стоит использовать flush() для записи данный в файл и seek()  для перехода к начала файла.