QT文件操作

该代码示例展示了如何在Qt环境中使用QFile进行文件的读写、检查文件存在性,利用QTextStream处理文本,使用QDir管理目录,包括文件拷贝、目录排序、创建和重命名。同时,QFileInfo被用来获取文件详细信息。
摘要由CSDN通过智能技术生成

 

QFile是一个输入/输出设备,用于读取和写入文本,二进制,文件和资源。QFIle可以单独使用,也可以和QTextStream和QDataStream一起使用。

#include "mainwindow.h"

#include <QApplication>
#include <QFile>
#include <QTextStream>
int main(int argc, char* argv[])
{
    // QT文件操作
    qDebug() << argc; // argc是输入参数的数据量,可以通过argv[argc]获取数据
    qDebug() << argv[0]; // 0是当前文件
    QFile f("test.txt");
    qDebug() << f.exists(); //文件是否存在
    if (argc != 2) {
        qWarning("请给出文件名称");
        return 1;
    }
    QFile file(argv[1]);
    QTextStream stream(&file); // 需要一个指针参数,数据的地址及指针

    if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
        QString data;
        QByteArray line = file.readLine();
        qDebug() << line;
        file.seek(0); // seek跳转到文件头
        data = stream.readAll();
        qDebug() << data;
        qDebug() << "++++++++++++++++++++";
        file.seek(0);
        while (!stream.atEnd()) {
            qDebug() << stream.readLine();
        }
    }
    file.close();
    //写文件
    QTextStream s(&file);
    if (file.open(QIODevice::WriteOnly)) {
        s << "张三\r\n";
        s << "李四\r\n";
    }
    file.close();
    qDebug() << file.fileName();
    return 0;
}

文件拷贝

#include "mainwindow.h"

#include <QApplication>
#include <QFile>
#include <QTextStream>
int main(int argc, char* argv[])
{
    // QT文件操作
    //拷贝文件
    QFile::copy("test.txt", "file.txt");

    return 0;
}

QDir目录结构

对目录结构进行访问

#include "mainwindow.h"

#include <QApplication>
#include <QDir>
#include <QFileInfoList>
#include <QTextStream>
int main(int argc, char* argv[])
{
    // QT文件操作
    QDir dir;
    dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks); //文件,隐藏的,不要链接文件

    dir.setSorting(QDir::Size | QDir::Reversed); //排序,通过大小,反向排序
    QFileInfoList info = dir.entryInfoList(); //返回QList对象列表,里面是QLFileInfo
    qDebug() << info;
    QList entry_list = dir.entryList();
    qDebug() << entry_list; //返回QList
    for (auto& filename : info) {
        qDebug() << filename << "大小为" << filename.size() << "文件名" << filename.fileName();
    }
    for (QString& f : entry_list) {
        qDebug() << f;
    }

    if (dir.mkdir("mydir")) {
        qDebug() << "创建成功";
    }
    if (dir.exists("mydir")) {
        dir.rename("mydir", "dir");
    }
    

    return 0;
}
#include "mainwindow.h"

#include <QApplication>
#include <QDir>
#include <QFileInfoList>
#include <QTextStream>
int main(int argc, char* argv[])
{
    // QT文件操作
    QDir dir;
    qDebug() << dir.current(); //获取当前工作目录 currentPath是字符串形式
    qDebug() << dir.currentPath(); //获取当前工作目录 currentPath是字符串形式

    qDebug() << dir.home(); //用户目录
    QString home = dir.homePath();
    qDebug() << home;
    qDebug() << "+++++++++++";
    qDebug() << dir.root(); //根目录
    qDebug() << dir.temp(); //临时目录

    return 0;
}

QFileInfo

作用是获取文件的信息

#include "mainwindow.h"

#include <QApplication>
#include <QDir>
#include <QFileInfoList>
#include <QTextStream>
int main(int argc, char* argv[])
{
    // QT文件操作
    QFileInfo info("test.txt");
    qDebug() << info.fileName(); //文件名称
    qDebug() << info.filePath(); //文件路径
    qDebug() << info.filesystemAbsoluteFilePath();

    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值