跳至主要內容

04.QT文件操作

约 286 字小于 1 分钟

读取和写入

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

void writeFile(const QString &filename, const QString &content) {
    QFile file(filename);

    // 打开文件进行写入(创建文件,如果文件不存在)
    if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
        qDebug() << "Could not open file for writing";
        return;
    }

    QTextStream out(&file);
    out << content;  // 写入内容

    file.close();  // 关闭文件
}

QString readFile(const QString &filename) {
    QFile file(filename);

    // 打开文件进行读取
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
        qDebug() << "Could not open file for reading";
        return QString();
    }

    QTextStream in(&file);
    QString content = in.readAll();  // 读取文件内容

    file.close();
    return content;
}

int main() {
    QString filename = "example.txt";
    writeFile(filename, "Hello, Qt!\nThis is a test.");

    QString content = readFile(filename);
    qDebug() << "File content:" << content;
    return 0;
}

QFile 检查文件是否存在

#include <QFile>
#include <QDebug>

bool fileExists(const QString &filename) {
    QFile file(filename);
    return file.exists();  // 检查文件是否存在
}

int main() {
    QString filename = "example.txt";
    if (fileExists(filename)) {
        qDebug() << "File exists!";
    } else {
        qDebug() << "File does not exist!";
    }
    return 0;
}

复制和删除文件

#include <QFile>
#include <QDebug>

void copyFile(const QString &source, const QString &destination) {
    QFile file(source);
    if (file.exists()) {
        if (file.copy(destination)) {
            qDebug() << "File copied successfully!";
        } else {
            qDebug() << "Failed to copy file!";
        }
    } else {
        qDebug() << "Source file does not exist!";
    }
}

void deleteFile(const QString &filename) {
    QFile file(filename);
    if (file.remove()) {
        qDebug() << "File deleted successfully!";
    } else {
        qDebug() << "Failed to delete file!";
    }
}

int main() {
    QString source = "example.txt";
    QString destination = "example_copy.txt";

    copyFile(source, destination);
    deleteFile(destination);

    return 0;
}