QFile — работа с файлами в Qt C++

Автор: | 7 июня, 2025

Класс QFile — это универсальный интерфейс для работы с файлами. С его помощью можно читать, записывать, копировать, удалять файлы, а также проверять их существование.

Подключение QFile

#include <QFile>
#include <QTextStream>
#include <QDebug>

Чтение текста из файла с помощью QFile

QFile file("example.txt");
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
    QTextStream in(&file);
    QString content = in.readAll();
    qDebug() << content;
    file.close();
} else {
    qDebug() << "Не удалось открыть файл";
}

Запись текста в файл с помощью QFile

QFile file("output.txt");
if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
    QTextStream out(&file);
    out << "Привет, мир!\n";
    file.close();
}

Добавление текста (Append) с помощью QFile

QFile file("log.txt");
if (file.open(QIODevice::Append | QIODevice::Text)) {
    QTextStream out(&file);
    out << "Новая запись: " << QDateTime::currentDateTime().toString() << "\n";
    file.close();
}

Проверка существования и удаление с помощью QFile

QFile file("old_data.txt");
if (file.exists()) {
    file.remove();
    qDebug() << "Файл удален.";
} else {
    qDebug() << "Файл не найден.";
}

Копирование файла с помощью QFile

if (QFile::copy("source.txt", "backup.txt")) {
    qDebug() << "Файл скопирован.";
} else {
    qDebug() << "Ошибка при копировании.";
}

Полезные флаги QIODevice

  • QIODevice::ReadOnly — только для чтения
  • QIODevice::WriteOnly — только для записи
  • QIODevice::Append — добавить в конец файла
  • QIODevice::ReadWrite — чтение и запись
  • QIODevice::Truncate — обрезать файл при открытии

Класс QFile — основа любой файловой работы в Qt. Он безопасен, удобен и отлично работает в связке с QTextStream и QFileInfo.