【QT】 QFileQFileInfo文件操作

很高兴在雪易的CSDN遇见你 ,给你糖糖

欢迎大家加入雪易社区-CSDN社区云 


前言

本文分享QT对文件的操作技术,希望对各位小伙伴有所帮助!

感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步!

你的点赞就是我的动力(^U^)ノ~YO

目录

前言

1. QFile构造函数

2. QFile常用函数

3. 实操

        》创建并打开文件.

        》判断文件是否存在.

        》拷贝文件.

        》给文件重命名

        》获取用户对指定文件的权限,是否可读

        》写入文件

        》读取文件数据

        》删除文件

        》获取文件夹下所有文件

结论:


1. QFile构造函数

QFile(const QString & name)
QFile(QObject * parent)
QFile(const QString & name, QObject * parent)

2. QFile常用函数

                                    函数名                                                         功能
                                      copy()                                                      复制文件
                                     exists()                                               检查文件是否存在
                                      open()                                                      打开文件
                                    remove()                                                      删除文件
                                    rename()                                                    修改文件名
                                 setFileName()                                                    设置文件名
                                       size()                                                      文件大小
                                       pos()                                              文件光标当前位置
                                      seek()                                              设置文件光标位置
                                     atEnd()                                           判断当前是否为文件尾
                                      read()                                                  读取文件内容
                                     close()                                                      关闭文件

        》文件打开模式 

                  模式               值 描述
    QIODevice::NotOpen          0x0000不打开
    QIODevice::ReadOnly          0x0001 只读方式
    QIODevice::WriteOnly          0x0002 只写方式,如果文件不存在则会自动创建文件
    QIODevice::ReadWriteReadOnly | WriteOnly读写方式
    QIODevice::Append          0x0004此模式表明所有数据写入到文件尾
    QIODevice::Truncate          0x0008 打开文件之前,此文件被截断,原来文件的所有数据会丢失
    QIODevice::Text          0x0010读的时候,文件结束标志位会被转为’\n’;写的时候,文件结束标志位会被转为本地编码的结束为,例如win32的结束位’\r\n’
    QIODevice::UnBuffered          0x0020                                                        不缓存

 

3. 实操

        》创建并打开文件.

//初始化时加载文件路径
QFile file("F:/test/xxx.txt");
//以读写的方式打开文件,成功返回true,失败返回false
//想用其他方式打开文件,请看上面的文件打开模式
bool ok = file.open(QIODevice::ReadWrite);
//如果文件不存在,则创建并打开该文件


        》判断文件是否存在.

//判断指定文件是否存在.也可以用来判断在指定路径下是否有文件和你将要创建的文件重名.
//存在返回true,不存在返回false
bool exist = QFile::exists("F:/test/xxx.txt");


        》拷贝文件.

//把D盘里的xxx.txt拷贝到到F盘,命名为sss.txt
//拷贝成功返回true,失败返回false
bool ok = QFile::copy("D:/xxx.txt", "F:/sss.txt");


        》给文件重命名

QFile file("F:/xxx.txt");
bool ok = file.rename("F:/sss.txt"); 
//重命名成功返回true,失败返回false
//也可以直接调用
bool ok = QFile::remove("F:/xxx.txt", "F:/sss.txt");


        》获取用户对指定文件的权限,是否可读

QFlags<QFileDevice::Permission> power = QFile::permissions("F:/xxx.txt"); 
//判断文件所有者是否可读
if (power.testFlag(QFile::ReadOwner))qDebug("Can Read!");

        》写入文件

//定义文件内容字符串
QString str= "写入文件的内容";
QFile file("F:/xxx.txt"); 
//打开文件,不存在则创建
file.open(QIODevice::ReadWrite | QIODevice::Text);
//写入文件需要字符串为QByteArray格式
file.write(str.toUtf8());
file.close();


        》读取文件数据

//先打开文件
QFile file("F:/xxx.txt");
file.open(QIODevice::ReadOnly | QIODevice::Text);//使用QTextStream一行一行读取文件
QTextStream in(&file);
while (!in.atEnd())
{QString line = in.readLine();      //整行读取qDebug() << line;
}


        》删除文件

QFile file("F:/xxx.txt");
bool ok = file.remove();
//删除成功返回true,失败返回false
//也可以直接调用
bool ok = QFile::remove("F:/xxx.txt");


        》获取文件夹下所有文件

QDir *dir = new QDir("F:/");
QStringList filters;
filters << "*.png" << "*.jpg" << "*.bmp";          //过滤器,过滤你想要的文件后缀
//用链表保存过滤的文件名
QList<QFileInfo> *fileInfo = new QList<QFileInfo>(dir->entryInfoList(filters));//获取文件数目、文件名称
for(int i = 0; i < fileInfo->count(); i++)
{//QFileInfo(路径名的Qstring字符串).filename可以直接取到路径中的文件名qDebug() << fileInfo->at(i).fileName();}

结论:

        本文主要介绍对文件的操作!

感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步!

你的赞赏是我的最最最最大的动力(^U^)ノ~YO

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/68845.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++学习笔记——从面试题出发学习C++

C学习笔记——从面试题出发学习C C学习笔记——从面试题出发学习C1. 成员函数的重写、重载和隐藏的区别&#xff1f;2. 构造函数可以是虚函数吗&#xff1f;内联函数可以是虚函数吗&#xff1f;析构函数为什么一定要是虚函数&#xff1f;3. 解释左值/右值、左值/右值引用、std:…

继承和多态C++

这里写目录标题 继承public、protected、private 修饰类的成员public、protected、private 指定继承方式改变访问权限 C继承时的名字遮蔽问题基类成员函数和派生类成员函数不构成重载C基类和派生类的构造函数构造函数的调用顺序基类构造函数调用规则 C基类和派生类的析构函数C多…

『清安无别事-赠书01期』|〖测试设计思想〗

目录 &#x1f9e1; 内容简介 &#x1f49b; 作者简介 &#x1f496; 本书内容|目录 &#x1f497; 读后感想 &#x1f49d; 参与方式 购书传送门&#xff1a;测试设计思想购书传送门&#xff1a;测试设计思想购书传送门&#xff1a;测试设计思想 &#x1f9e1; 内容简介 …

LangChain手记 Question Answer 问答系统

整理并翻译自DeepLearning.AILangChain的官方课程&#xff1a;Question Answer&#xff08;源代码可见&#xff09; 本节介绍使用LangChian构建文档上的问答系统&#xff0c;可以实现给定一个PDF文档&#xff0c;询问关于文档上出现过的某个信息点&#xff0c;LLM可以给出关于该…

springcloud3 使用openfegin实现getpost请求调用

一 项目介绍 1.1 工程介绍 1.consumer9008 2.provider9009 二 get请求 2.1 消费端 1.controller 2.service 2.2 提供者 1.提供者 2.3 测试请求 地址&#xff1a; http://localhost:9008/consumer/payment/nacos/2223 三 post请求 3.1 消费者 3.2 提供者 3.3 测试请求…

bytesec靶场

靶场下载 https://www.vulnhub.com/entry/hacknos-os-bytesec,393/ 下载完成后进入配置修改网卡 教程 配置 第一步&#xff1a;启动靶机时按下 shift 键&#xff0c; 进入以下界面 第二步&#xff1a;选择第二个选项&#xff0c;然后按下 e 键&#xff0c;进入编辑界面 将…

飞凌嵌入式i.MX9352嵌入式ARM开发板,让通信安全又稳定——EMC防护,静电、浪涌、脉冲4级防护能力

随着新基建的加快推进&#xff0c;智能制造迎来了更好的发展时机&#xff0c;嵌入式板卡等智能设备也在更多的应用场景中大放异彩。但随着现场的设备数量的剧增&#xff0c;环境中的各种干扰信号也随之增加&#xff0c;这就对设备间通信的安全性与稳定性提出了更高的要求。 1【…

Qt应用开发(基础篇)——滚屏区域类 QScrollArea

一、前言 QScrollArea类继承于QAbstractScrollArea&#xff0c;QAbstractScrollArea继承于QFrame&#xff0c;是Qt滚动视图的常用部件。 滚屏区域基类 QAbstractScrollArea 框架类 QFrame QScrollArea类提供了对另一个小部件的滚动视图&#xff0c;基础功能、滚动条控制、界面策…

服务器数据恢复-EqualLogic存储RAID5数据恢复案例

服务器数据恢复环境&#xff1a; 一台DELL EqualLogic存储中有一组由16块SAS硬盘组建的RAID5阵列。存储存放虚拟机文件&#xff0c;采用VMFS文件系统&#xff0c;划分了4个lun。 服务器故障&检测&分析&#xff1a; 存储设备上有两个硬盘指示灯显示黄色&#xff0c;存储…

elasticsearch-head 插件

1、elastic 插件说明 **Head** 是第三方提供的一款很优秀的插件&#xff0c;集监控、查询、配置一体的web功能系统&#xff0c;可以在系统中进行创建、删除索引 、文档。以及查询、配置索引等功能&#xff0c;深受广大开发者的喜爱 **Kopf** 是另一个第三方提供的一款很优秀…

iTOP-STM32MP157开发板Linux Misc驱动编写实验程序(运行测试)

启动 STM32MP157 开发板&#xff0c;我们通过 nfs 挂载共享文件目录&#xff0c;我们进入到共享目录&#xff0c;加载驱动模块如 图所示&#xff1a; insmod misc.ko 驱动加载成功后&#xff0c;输入以下命令&#xff0c;查看注册的设备节点是否存在&#xff0c;如下图所示&a…

opencv图片换背景色

#include <iostream> #include<opencv2/opencv.hpp> //引入头文件using namespace cv; //命名空间 using namespace std;//opencv这个机器视觉库&#xff0c;它提供了很多功能&#xff0c;都是以函数的形式提供给我们 //我们只需要会调用函数即可in…