前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【QT】QT文件处理

【QT】QT文件处理

作者头像
半生瓜的blog
发布于 2023-05-13 05:51:55
发布于 2023-05-13 05:51:55
1.6K00
代码可运行
举报
文章被收录于专栏:半生瓜のblog半生瓜のblog
运行总次数:0
代码可运行

文件处理

QFile类用于文件操作,它提供了读写文件的接口,可以读写文件、二进制文件和Qt资源文件。

处理文本文件和二进制文件,可以使用QTextStream类和QDataStream类。处理临时文件可以使用QTemporaryFile,获取信息可以使用QFileInfo,处理目录可以使用QDir,监视文件和目录变化可以使用QFileSystemWatcher。

QFile类示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <QCoreApplication>
#include<QFile>
#include<QDebug>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    //文件读取
   QFile file("hello.txt");
   if(file.open(QIODevice::ReadOnly))
   {
       char buffer[100];
       qint32 n = file.readLine(buffer,sizeof(buffer));
       if(n != -1)
       {
            qDebug()<<n<<" "<<buffer;
            file.close();//关闭文件
       }
   }
   else
   {
        qDebug()<<file.errorString();
    }

   //文件写入
   QFile dataFile;
   double dPI = 3.1415926;
   int age =19;
   dataFile.setFileName("data.txt");
   if(dataFile.open(QFile::WriteOnly | QFile::Truncate))
   {
        QTextStream out(&dataFile);
        //设置精度
        out.setRealNumberPrecision(3);
        //设置字段宽度
        out.setFieldWidth(20);
         //设置对齐方式
         out.setFieldAlignment(QTextStream::AlignCenter);
        out<<QString("PI:")<<dPI;
        //将整数以二进制方式写入
        out<<bin<<age;
        //十六进制写入,并显示进制前缀
        out<<hex<<showbase<<age;
        //科学计数法
        out<<scientific<<dPI;
   }
    return a.exec();
}

操作二进制文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <QCoreApplication>
#include<QFile>
#include<QDebug>
#include<QDate>
#include<QDataStream>
int main(int argc, char *argv[])
{
    //往文件中写入数据
    QCoreApplication a(argc, argv);

     QFile  binFile("info.bat");
     if(binFile.open(QIODevice::WriteOnly | QIODevice::Truncate))
     {
         QDataStream out(&binFile);
         out<<QString("半生瓜のblog")<<QDate::fromString("2022-01-24","yyyy-MM-dd")<<(qint32)19;
          binFile.close();
     }
     else
     {
         qDebug()<<binFile.errorString();
     }
     binFile.setFileName("info.bat");//指明要操作的文件
     if(binFile.open(QIODevice::ReadOnly))
     {
         QDataStream in(&binFile);
        //怎么写怎么读
         QString Name;
         QDate NowTime;
         qint32 Age;
         in>>Name>>NowTime>>Age;
         qDebug()<<Name<<NowTime<<Age;
         binFile.close();
     }
     else
     {
          qDebug()<<binFile.errorString();
     }

    return a.exec();
}

示例:获取文件信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
void FileInfo::getFileInfo(QString &fileName)
{
    //通过这个类来获取文件的信息
    QFileInfo info(fileName);
    qint64 size = info.size();//获取文件大小
    QDateTime createTime = info.created();//获取文件创建时间
    QDateTime lastModTime = info.lastModified();//获取文件最后一次被的修改的时间
    QDateTime lasReadTime = info.lastRead();//获取文件最后一次被读取的时间
    //文件的属性信息
    bool isDir = info.isDir();//是不是目录
    bool isFile = info.isFile();//是不是文件
    bool isSymLink = info.isSymLink();//是不是链接
    bool isHid = info.isHidden();//是否隐藏
    bool isReadable = info.isReadable();//是否可读
    bool isWritable = info.isWritable();//是否可写
    bool isExcutable = info.isExecutable();//是否可执行

    //根据读取信息设置控件信息
    ui->FileSizeLineEdit->setText(QString::number(size));//整型转字符串
    ui->CreateTimeLineEdit->setText(createTime.toString());//QDate转字符串
    ui->LastModTimeLineEdit->setText(lastModTime.toString());
    ui->LastCheckTimeLineEdit->setText(lasReadTime.toString());
    ui->isDirCheckBox->setChecked(isDir);
    ui->isFileCheckBox->setChecked(isFile);
    ui->isExecutableCheckBox->setChecked(isExcutable);
    ui->isSymLinkCheckBox->setChecked(isSymLink);
    ui->isHiddenCheckBox->setChecked(isHid);
    ui->isWritableCheckBox->setChecked(isWritable);
    ui->isReadableCheckBox->setChecked(isReadable);

}

void FileInfo::on_browerFileBtn_clicked()
{
    //选择文件
    QString fileName = QFileDialog::getOpenFileName(this,"打开文件",".","files(*)");
     //选择目录QString path = QFileDialog::getExistingDirectory(this,"选择目录",".");
    ui->FileNameLineEdit->setText(fileName);//文件名(带路径的)
    getFileInfo(fileName);
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-01-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【QT】系统事件入门 -- 文件 QFile基础和示例
🔥 文件操作是应用程序必不可少的部分。Qt 作为⼀个通用开发库,提供了跨平台的文件操作能力。Qt 提供了很多关于⽂件的类,通过这些类能够对文件系统进行操作,如文件读写、文件信息获取、文件制或重命名等
IsLand1314
2025/03/21
750
【QT】系统事件入门 -- 文件 QFile基础和示例
Fdog系列(五):使用Qt模仿QQ实现登录界面到主界面,功能篇。
Fdog系列(三):使用腾讯云短信接口发送短信,数据库写入,部署到服务器,web收尾篇。
花狗Fdog
2021/05/06
3.2K0
Qt5实战第六篇:文件操作与输入输出
在 Qt5 中,文件操作与输入输出(I/O)是开发桌面应用程序时不可或缺的一部分。Qt 提供了丰富的类和方法来处理文件的读写、目录的遍历以及数据流的处理。本篇将详细介绍如何在 Qt5 中进行文件操作与输入输出。
china马斯克
2024/12/29
3500
QT应用编程: 应用程序的配置保存与恢复
应用程序运行时,用户经常会对程序做一些个性化设置; 关闭程序之后,下次打开还原上次的设置。程序里可以将这些设置保存到本地文件了存放,下次打开程序时,再加载进来即可。
DS小龙哥
2022/01/07
1K0
Qt学习之路_6(Qt局域网聊天软件)
http://www.cnblogs.com/tornadomeet/archive/2012/07/04/2576355.html
bear_fish
2018/09/20
3.3K0
Qt学习之路_6(Qt局域网聊天软件)
基于Qt的UDP通信、TCP文件传输程序的设计与实现——QQ聊天群聊
QQ是一款优秀的聊天软件,本文将提供主要代码和思路来实现一个类似于QQ群聊的网络聊天软件,大致有以下俩个功能:
秋名山码神
2023/11/23
8760
基于Qt的UDP通信、TCP文件传输程序的设计与实现——QQ聊天群聊
QT应用编程:基于QMediaPlayer开发音视频播放器
QMediaPlayer是Qt提供的一个跨平台媒体播放器类,它没有自带解码库,而是对平台相关的播放器框架做了封装,提供了平台无关的API。所以使用QMediaPlayer播放视频,需要提前安装解码库。 在win系统下可以下载K-Lite_Codec_Pack或者LAVFilters解码库安装。
DS小龙哥
2022/01/07
3.4K0
QT应用编程:基于QMediaPlayer开发音视频播放器
C/C++ Qt 基本文件读写方法
Qt文件操作有两种方式,第一种使用QFile类的IODevice读写功能直接读写,第二种是利用 QFile和QTextStream结合起来,用流的方式进行文件读写。
微软技术分享
2022/12/23
6480
14.QT-QFile文件,QBuffer缓冲区,QDir目录,QFileSystemWatcher文件系统监视
QFile Qt中所有与IO相关的类都继承于QIODevice,继承图如下所示: 其中QFile类便是用于文件操作的类 在QT中,将文件当做一种特殊的外部设备对待(比如:串口,usb等就是外部设备)
诺谦
2018/05/28
2.3K0
QT软件开发: 基于QT设计的完整版视频播放器、多媒体播放器(mdk-sdk)
完整工程源码下载地址(下载即可编译运行): https://download.csdn.net/download/xiaolong1126626497/19387165
DS小龙哥
2022/01/12
6.7K0
QT软件开发:  基于QT设计的完整版视频播放器、多媒体播放器(mdk-sdk)
Qt学习(二)------实例mynotepad制作
最近在看高老师的视频教程,自己跟着做了一个txt编辑器,功能很简单,能实现编辑,保存,撤销,复制粘贴等基础功能;关于那边有一些特效
致Great
2023/08/26
2010
Qt学习(二)------实例mynotepad制作
Qt的QFile
配合QFileDialog:“文件对话框”,一起食用将会更好哦! 专门讲QFileDialog的博文
全栈程序员站长
2022/07/01
1.9K0
QT软件开发:基于QtAV设计的视频播放器
完整源码下载: https://download.csdn.net/download/xiaolong1126626497/19759245
DS小龙哥
2022/01/12
1.6K0
QT软件开发:基于QtAV设计的视频播放器
基于Qt设计的学生考勤系统
当前设计的考勤系统主要给高校的教师使用,上课时,学生进入教室拿出学生卡自己进行打开考勤,可以在系统里申请请假以及查看在校期间所有的上课出勤信息。
DS小龙哥
2022/02/17
1.9K0
基于Qt设计的学生考勤系统
Qt读写文件(2种方式)实现详解
FileWR.h #pragma once #include <QtWidgets/QMainWindow> #include "ui_FileWR.h" class FileWR : public QMainWindow { Q_OBJECT public: FileWR(QWidget *parent = Q_NULLPTR); private: Ui::FileWRClass ui; private slots: void on_pushButton_clicked();
zls365
2020/08/19
1.3K0
Qt读写文件(2种方式)实现详解
Qt的简易日志模块封装
C++的下的日志库有很多,如log4cpp、Easylogging++,eplog,g3log,Qt下也有log4qt。
杨永贞
2022/08/11
7960
Qt的简易日志模块封装
QT_使用TCP/IP传输文件
首选预览一下最终实现的效果,如下图: 一、服务器端 1、widget.h #ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include <QTcpServer>  //监听套接字 #include <QTcpSocket>  //通信套接字 #include <QFile> #include <QTimer> namespace Ui { class Widget; } class Widget : public QWidget {  
Sindsun
2019/12/06
1.3K0
Qt实战:云曦日历篇
自国务院印发《推进普惠金融发展规划(2016—2020年)》通知以来,各省、自治区、直辖市人民政府、国务院各部委各直属机构积极响应,认真贯彻执行,普惠金融发展已经进入了高潮阶段,各大互联网公司和高校紧跟时代潮流,推出了各种创新性产品和软件,该软件作为一款以培养兴趣,提高学生软件项目的编程项目能力为目的,所创建的一款实用性的软件,以日历为依托,创建了许多相关的特效,优美界面和天气查询、日程管理等实用性功能,且界面等均符合当下青少年的审美需求,是一款紧跟潮流的日历软件
灵彧
2022/10/31
1.5K0
Qt实战:云曦日历篇
Qt项目网络聊天室设计
3. 服务器接收到某个客户端的请求以及发送信息,经服务器发给其它客户端 最终实现一个共享聊天内容的聊天室!
DeROy
2020/08/19
2.4K0
Qt项目网络聊天室设计
Qt学习之路_5(Qt TCP的初步使用)
http://www.cnblogs.com/tornadomeet/archive/2012/06/30/2571001.html
bear_fish
2018/09/20
3.3K0
Qt学习之路_5(Qt TCP的初步使用)
相关推荐
【QT】系统事件入门 -- 文件 QFile基础和示例
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验