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

一、文件操作类概述

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

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

Qt文件系统操作和文件的读写_第1张图片

Qt文件系统操作和文件的读写_第2张图片


 二、目录和文件操作

  • 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() 退出应用程序

范例:

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博客icon-default.png?t=N6B9https://blog.csdn.net/kongcheng253/article/details/128756662QFile类除了可以进行文件的读写,还有一些静态函数和接口函数可用于文件操作

Qt文件系统操作和文件的读写_第3张图片

 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文件系统操作和文件的读写_第4张图片

 范例:

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文件系统操作和文件的读写_第5张图片

  2.4 QDir类

主要的静态函数:

Qt文件系统操作和文件的读写_第6张图片

 部分接口函数:

Qt文件系统操作和文件的读写_第7张图片

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

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

 

你可能感兴趣的:(QT编程学习,qt,开发语言)