Qt文件系统操作和文件的读写

这篇具有很好参考价值的文章主要介绍了Qt文件系统操作和文件的读写。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、文件操作类概述

QIODevice:所有输入输出设备的基础类

  • QFile:用于文件操作和文件数据读写的类
  • QSaveFile:用于安全保存文件的类
  • QTemporaryFile:用于创建临时文件的类
  • QTcpSocketQUdpSocket:分别实现了TCP和UDP的类
  • QSerialPort:实现串口通信的类
  • QBluetoothSocket:用于蓝牙通信的类
  • QProcess:用于启动外部程序,并且可以给程序传递参数
  • QBuffer:以一个QByteArray对象作为数据缓冲区,将QByteArray对象作为I/O设备来读写

Qt文件系统操作和文件的读写,QT编程学习,qt,开发语言

Qt文件系统操作和文件的读写,QT编程学习,qt,开发语言


 二、目录和文件操作

  • QCoreApplication:可提取应用程序路径、重命名等信息:QT QCoreApplication 类_qcoreapplication 退出_hongdou9a9的博客-CSDN博客
  • QFile:可进行文件的复制、删除、重命名等操作
  • QFileInfo:用于获取文件的各种信息,如文件的路径,基本文件名,文件名后缀,文件大小等
  • QDir:用于目录i信息获取和目录操作,如新建、获取。删除目录下的文件或子目录等
  • QTemporaryDir:用于创建临时目录,临时目录可在使用后自动删除
  • QTemporaryFile:用于创建临时文件,临时文件可在使用后自动删除
  • QFileSystenWatcher:用于监视设定的目录和文件,当所监视的目录或文件出现复制、重命名、删除等操作时会发射出出相应的信号

2.1 QCoreApplication类

QCoreApplication与应用程序信息相关的几个静态函数

函数原型 功能
QString applicationDirPath() 返回程序可执行文件所在路径
QString applicationFilePath() 返回应用程序的带有路径的完整文件名
QString applicationName() 返回应用程序名称,默认是无后缀的可执行文件名
QString setApplicationName(QString &application) 设置应用程序名称,替代默认的应用程序名称
QStringList libraryPaths() 返回一个字符串列表,其是应用程序动态加载库文件时搜索的目录列表
void addLibraryPath(QString &path) 将一个路径添加到应用程序的库搜索目录列表中
void setOrganizationName(QString &orgName) 为应用程序设置一个组织名
QString OrganizationName() 返回应用程序的组织名
void exit() 退出应用程序

范例:文章来源地址https://www.toymoban.com/news/detail-661055.html

void Dialog::on_pushButton_5_clicked()
{
    showbtninfo(sender());
    QStringList strList=QCoreApplication::libraryPaths();
    for(auto item:strList)
        ui->plainTextEdit->appendPlainText(item);
    ui->plainTextEdit->appendPlainText("\n");
}

2.2 QFile类

[QT_032]Qt学习之基本文件读写QFile_qfile 读取文件_天空之城8020的博客-CSDN博客https://blog.csdn.net/kongcheng253/article/details/128756662QFile类除了可以进行文件的读写,还有一些静态函数和接口函数可用于文件操作

Qt文件系统操作和文件的读写,QT编程学习,qt,开发语言

 QFile的静态函数:

函数原型 功能
 bool copy(QString &fileName,QString &newName) 复制一个文件
bool rename(QString &oldName,QString &newName) 重命名一个文件
bool remove(QString &fileName) 删除一个文件
bool moveTo Trash(QString &fileName,QString *pathInTrash=nullptr) 将一个文件移动到回收站
bool exists(QString &fileName) 判断一个文件是否存在
bool link(QString &fileName,QString &linkName) 创建文件连接,在window上就是创建快捷方式
QString symLinkTarget(QString &fileName) 返回一个链接指向的绝对文件名或路径

bool setPermissions(QString&fileName,

QFileDevice::Permissions permissions)

设置一个文件的权限,权限是枚举类型QFileDevice::Permission的枚举值组合
QFileDevice::Permissions permissions(QString &fileName) 返回文件的权限

范例:

//静态函数copy()代码实现
void Dialog::on_pushButton_8_clicked()
{
    showbtninfo(sender());
    QString sous=ui->EditFile->text();//拿到editFile的名称
    QFileInfo fileinfo(sous);
    QString newFile=fileinfo.path()+"/"+fileinfo.baseName()+"--副本"+fileinfo.suffix();
    QFile::copy(sous,newFile);
    ui->plainTextEdit->appendPlainText("源文件:"+sous);
    ui->plainTextEdit->appendPlainText("副本:"+newFile+"\n");
}

void Dialog::on_pushButton_11_clicked()
{
    //静态函数exists()
    showbtninfo(sender());
    QString sous=ui->EditFile->text();
    bool the=QFile::exists(sous);//调用静态函数判断源文件sous是否存在
    ui->plainTextEdit->appendPlainText(sous);//不管存不存在都可以输出资源名称
    if(the)//若资源文件存在
        ui->plainTextEdit->appendPlainText("存在");
    else
         ui->plainTextEdit->appendPlainText("不存在");
    ui->plainTextEdit->appendPlainText("\n");
}

 QFile的接口函数:

Qt文件系统操作和文件的读写,QT编程学习,qt,开发语言

 范例:

void Dialog::on_pushButton_14_clicked()
{
    //成员函数copy()
    showbtninfo(sender());
    QString sous=ui->EditFile->text();//拿到editFile的名称
    QFileInfo fileinfo(sous);
    QString newFile=fileinfo.path()+"/"+fileinfo.baseName()+"--副本"+fileinfo.suffix();
    QFile file(sous);
    file.copy(newFile);
    ui->plainTextEdit->appendPlainText("源文件:"+sous);
    ui->plainTextEdit->appendPlainText("副本:"+newFile+"\n");
}

void Dialog::on_pushButton_16_clicked()
{
    //成员函数exists()
    showbtninfo(sender());
    QString sous=ui->EditFile->text();
    QFile file(sous);
    bool the=file.exists(sous);//调用静态函数判断源文件sous是否存在
    ui->plainTextEdit->appendPlainText(sous);//不管存不存在都可以输出资源名称
    if(the)//若资源文件存在
        ui->plainTextEdit->appendPlainText("存在");
    else
         ui->plainTextEdit->appendPlainText("不存在");
    ui->plainTextEdit->appendPlainText("\n");
}

 2.3 QFileInfo类

 用于获取文件的各种信息。

常用的接口函数如下:

Qt文件系统操作和文件的读写,QT编程学习,qt,开发语言

范例:

void Dialog::on_pushButton_115_clicked()
{
     //isFile()函数的实现
    showbtninfo(sender());
    QString sous=ui->EditFile->text();
    //先判断文件是否真的存在
    QFile file(sous);
    if(!file.exists(sous))
        return;
    QFileInfo fileinfo(sous);
    if(fileinfo.isFile())
        ui->plainTextEdit->appendPlainText(fileinfo.fileName()+"是一个文件");
    else
        ui->plainTextEdit->appendPlainText("文件不存在");
}

void Dialog::on_pushButton_112_clicked()
{
    //birthTime()函数的实现
    showbtninfo(sender());
    QString sous=ui->EditFile->text();//拿到editFile的名称
    QFileInfo fileinfo(sous);
    QDateTime DTime=fileinfo.birthTime();
    ui->plainTextEdit->appendPlainText("文件创建时间为:"+DTime.toString("yyyy-MM-dd hh:mm:ss"));
}

  2.4 QDir类

主要的静态函数:

Qt文件系统操作和文件的读写,QT编程学习,qt,开发语言

 部分接口函数:

Qt文件系统操作和文件的读写,QT编程学习,qt,开发语言

需要传递QDir::Filter枚举类型的参数以获取不同的结果(枚举类型的常用取值如下)或者使用过滤器返回特定类型的文件、子目录名

  • QDir::AllDirs:列出所有目录名
  • QDir::Files:列出所有文件
  • QDir::Drives:列出所有盘符(Unix系统下无效)
  • QDir::NoDotAndDotDot:不列出特殊的符号,如".",".."
  • QDir::AllEntries:列出目录下所有项目

范例:

void Dialog::on_pushButton_42_clicked()
{
    //静态函数drives()
    showbtninfo(sender());
    QFileInfoList drivelist=QDir::drives();//返回驱动器列表
    for(int i=0;i<drivelist.size();i++)
    {
        ui->plainTextEdit->appendPlainText(drivelist.at(i).path());
    }
    ui->plainTextEdit->appendPlainText("\n");
}
void Dialog::on_pushButton_51_clicked()
{
    //mkdir()
    showbtninfo(sender());
    QString subDir="subDir1";//准备一个目录名
    QDir dir(ui->EditDir->text());
    bool ok=dir.mkdir(subDir);//在目录dir中创建一个新的目录subDir1
    if(ok)
        ui->plainTextEdit->appendPlainText("所选目录下成功新建一个目录 "+subDir+"\n");
    else
        ui->plainTextEdit->appendPlainText("目录创建失败\n");
}
void Dialog::on_pushButton_53_clicked()
{
    //setpath()
    showbtninfo(sender());
    QString curDir=QDir::currentPath();
    QDir lastDir(curDir);
    ui->plainTextEdit->appendPlainText("选择目录之前:"+lastDir.absolutePath()+"\n");
    QString aDir=QFileDialog::getExistingDirectory(this,"选择一个目录",curDir,QFileDialog::ShowDirsOnly);
    if(aDir.isEmpty())
        return;
    ui->EditDir->setText(aDir);//将打开的文件名写入到editDir中
    lastDir.setPath(aDir);
    ui->plainTextEdit->appendPlainText("选择目录之后:"+lastDir.absolutePath());
    ui->plainTextEdit->appendPlainText("\n");
}

到了这里,关于Qt文件系统操作和文件的读写的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QT5实现职工工资信息管理系统(文件读写)

    暑期学校QT实践项目 该系统需创建和管理如下信息:1、职工信息:工号、姓名、年龄、入职日期、电话、住址、月工资数据集。2、月工资信息:月份、基本工资、岗位工资、工龄工资、津贴、岗贴、补贴、房贴、交通补贴。 系统功能要求如下: 1.创建和管理职工信息的对

    2024年02月09日
    浏览(45)
  • 07-2_Qt 5.9 C++开发指南_二进制文件读写(stm和dat格式)

    除了文本文件之外,其他需要按照一定的格式定义读写的文件都称为二进制文件 。每种格式的二进制文件都有自己的格式定义,写入数据时按照一定的顺序写入,读出时也按照相应的顺序读出。例如地球物理中常用的 SEG-Y 格式文件,必须按照其标准格式要求写入数据才符合

    2024年02月13日
    浏览(47)
  • 【嵌入式Qt开发入门】如何使用Qt进行文本读写——QFile读写文本

            在很多时候我们需要读写文本文件进行读写,比如写个 Mp3 音乐播放器需要读 Mp3 歌词里的文本,比如修改了一个 txt 文件后保存,就需要对这个文件进行读写操作。本文介绍简单的文本文件读写,内容精简,让大家了解文本读写的基本操作。         QFile 类提

    2024年02月12日
    浏览(45)
  • qt读写文本文件

    使用QFile类进行读写,使用Open函数打开文件,打开方式有: QIODevice::NotOpen 0x0000 不打开 QIODevice::ReadOnly 0x0001 只读方式 QIODevice::WriteOnly 0x0002 只写方式,如果文件不存在则会自动创建文件 QIODevice::ReadWrite ReadOnly | WriteOnly 读写方式 QIODevice::Append 0x0004 此模式表明所有数据写入到文

    2024年02月10日
    浏览(54)
  • qt读写xml文件

    Qt使用XML模块,在.pro文件中添加 QT += xml Qt 提供了三种读 写  XML 文档的方法: QXmlStreamReader / QXmlStreamWriter: 一种快速的基于流的方式访问良格式 XML 文档 , 特别适合于实现一次解析器(所谓“一次解析器”,可以理解成我们只需读取文档一次,然后像一个遍历器从头到尾一

    2024年02月11日
    浏览(44)
  • QT读写配置文件

    Qt中常见的配置文件为(.ini)文件,其中ini是Initialization File的缩写,即初始化文件。 配置文件的格式如下所示: Qt中使用 QSettings 类来完成读写ini文件的操作。

    2024年02月13日
    浏览(38)
  • C++/Qt 读写文件

    之前写过两篇跟文件操作相关的博客,有兴趣也可以看一下: C语言读写文件 Qt关于文件路径的处理 先讲一些关于基础文本文件和二进制文件的读写操作,后续将会整理C++/Qt关于ini、xml、json、xlsx相关文件的读写操作。 相比于C语言使用FILE文件指针来实现文件操作,C++ 采用的

    2024年02月14日
    浏览(47)
  • Qt读写文件

    项目文件结构 样例文件 再次读取 获取文件信息  

    2024年02月11日
    浏览(50)
  • Qt多线程读写大型文本文件项目

    目录 一 功能列表 二 架构设计 三 代码实现 四 软件原型效果 五 测试验证 六 项目工程打包发布 七 项目完整源码获取 显示文件路径选择框,仅展示 .txt类型文件可选; 读取文本文件,显示到桌面控件中; 读取的文件使用多线程处理,不影响显示界面正常操作; 读取过来

    2024年02月01日
    浏览(48)
  • 07-3_Qt 5.9 C++开发指南_文件目录操作

    Qt 为文件和目录操作提供了一些类,利用这些类可以方便地实现一些操作。Qt 提供的与文件和目录操作相关的类包括以下几个。 QCoreApplication:用于提取应用程序路径、程序名等文件信息 QFile: 除了打开文件操作外,QFile 还有复制文件、删除文件等功能 QFileInfo:用于提取文件的信

    2024年02月13日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包