龙空技术网

QT 对文件的操作(创建、拷贝、写入、删除)

C加加Qt技术开发老杰 219

前言:

此时大家对“c语言写入”大约比较注意,姐妹们都想要知道一些“c语言写入”的相关文章。那么小编在网络上网罗了一些关于“c语言写入””的相关资讯,希望同学们能喜欢,姐妹们快快来了解一下吧!

简述

在QT中,我们时常要对文件进行各种操作,比如文件的创建、写入、拷贝和删除等等,这些都要用到QFile类。

QFile类提供了读写文件的接口。一般情况下,我们可以直接在调用构造函数的时候传递文件名,这是比较方便的方法。或者使用QFile创建对象,再调用setFileName()方法来设置文件路径。其中文件名中的路径分隔符要求必须是'/',其他分隔符QFile不支持。

常用接口

QFile构造函数:

QFile(const QString & name)

QFile(QObject * parent)

QFile(const QString & name, QObject * parent)

QFile的常用函数:

文件打开模式:

Qt资料领取(视频教程+文档+代码+项目实战)

代码之路

1.创建并打开文件.

C++

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

2.判断文件是否存在.

C++

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

3.拷贝文件.

C++

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

4.给文件重命名

C++

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

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

C++

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

6.写入文件

C++

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

7. 读取文件数据

C++

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

8.删除文件

C++

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

9.获取文件夹下所有文件

C++

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();}

原文链接:

Qt资料领取→「链接」

标签: #c语言写入