猿创征文|Qt 文件和目录应用讲解【QCoreApplication】【QFile、QFileInfo】【QTemporaryDir和QTemporaryFile】【QDir】【QFileSyste】

在这里插入图片描述


订阅Qt 专栏 观看更多内容
Qt 专栏 风里雨里 等你 点me


本文UI设计及需要完成的功能


在这里插入图片描述

ui设计

在这里插入图片描述


第一章 QCoreApplication类

【1】QCoreApplication: 用于提取应用程序路径、程序名等文件信息。
说明:是为无GUI应用提供事件循环的类,是所有应用程序的基类,其子类QGuiApplication为有GUI界面的应用程序提供流控制和主要的设定。QGuiApplication的子类QApplication为基于QWidget的应用程序提供支持,包括界面的初始化。

第一节 QCoreApplication常用函数方法

【1】QString applicationDirPath() ->返回应用程序启动路径
【2】QString applicationFilePath() ->返回应用程序带有目录路径的完整文件名
【3】QString applicationName() ->返回应用程序名称,无路径无后缀
【4】QStringList libraryPaths() ->返回应用程序动态加载库文件时,应用程序搜到目录列表
在这里插入图片描述

【5】QString setOrganizationNmae(QString &orgName)->设置应用程序机构名
【6】QString organizationName()->获取应用程序机构名
【7】void exit() ->退出应用程序

扫描二维码关注公众号,回复: 14527844 查看本文章

第二节 QCoreApplication举例

使用QPlainTextEdit文本框显示内容

//设置每个按钮点击后的文本显示 【减少代码冗余量】
void MainWindow::showButtonInfo(QObject *buttoner)
{
    
    
    QPushButton *button =static_cast<QPushButton *>(buttoner);//强制转化类型
    ui->plainTextEdit->appendPlainText(tr("按钮:"+button->text().toUtf8()));//设置按钮文本
}

在这里插入图片描述

//QCoreApplication类
void MainWindow::on_pb_openfile_2_clicked()
{
    
    
    showButtonInfo(sender());
    ui->plainTextEdit->appendPlainText(tr("返回应用程序启动目录=%1").arg(QCoreApplication::applicationDirPath()));
    ui->plainTextEdit->appendPlainText(tr("返回应用程序启动文件名=%1").arg(QCoreApplication::applicationFilePath()));
    ui->plainTextEdit->appendPlainText(tr("返回应用程序文件名=%1").arg(QCoreApplication::applicationName()));
    ui->plainTextEdit->appendPlainText(tr("动态加载库文件 应用程序搜索的目录列表=%1").arg(QCoreApplication::applicationName()));

    //设置机构名
    QCoreApplication::setOrganizationName(tr("C++是最好的编程语言"));
    ui->plainTextEdit->appendPlainText(tr("返回应用程序机构名=%1").arg(QCoreApplication::organizationName()));

}
//退出应用程序
void MainWindow::on_pushButton_3_clicked()
{
    
    
    QCoreApplication::exit();
}

在这里插入图片描述

//libraryPaths()
void MainWindow::on_pb_20_clicked()
{
    
    
    showButtonInfo(sender());
    QStringList list = QCoreApplication::libraryPaths();
    for(int i=0;i<list.size();i++)
    {
    
    
        ui->plainTextEdit->appendPlainText(list.at(i));
    }

}

在这里插入图片描述

第二章 QFile类

第一节 静态函数方法

打开文件、复制文件、删除文件、读写文件等功能。

具体如下,实际举例,只是列出几项

【1】bool copy(QString &fileName,QString &newName) ->复制文件
【2】bool rename(QString &oldName,QString &newName) ->文件重命名
【3】bool remove(QString &fileName) ->删除文件
【4】bool exists(QString &fileName) ->判断文件是否存在
【5】bool setPermissions(QString &fileName,Permissions permissions) ->是设置文件权 限,QFileDevice::Permission
【6】Peimissions permissions(QString &fileName) ->获取文件的权限

在这里插入图片描述

第二节 成员函数方法

【1】void setFileName(QString &fileName) ->设置文件名
【2】bool copy(QString &fileName) ->当前文件复位为新的文件,文件另存
【3】bool rename(QString &fileName) ->当前文件重命名为新的文件
【4】bool remove() ->删除当前文件
【5】bool exists() ->判断文件是否存在
【6】bool setPermissions(Permissions permissions) ->设置当前的文件权 限,QFileDevice::Permission
【7】Peimissions permissions(QString &fileName) ->获取当前的文件的权限
【8】qint64 size() ->返回文件大小

在这里插入图片描述

第三章 QFileInfo类

文件信息类 应用广泛

第一节 常用函数方法

【1】void setFile(QString &file) ->设置文件名
【2】QString absoluteFilePath()->返回文件的绝对路径(目录+文件名)
在这里插入图片描述

【3】QString absolutePath() ->返回绝对路径不带文件名(目录)
在这里插入图片描述

【4】QString fileName() ->返回文件名,不带路径(带后缀)
在这里插入图片描述

【5】QString filePath() ->返回有绝对路径的文件名(带后缀)
在这里插入图片描述

【6】QString path() ->返回文件所在目录(无文件名)
在这里插入图片描述

【7】qint64 size() ->返回文件大小,字节为单位
在这里插入图片描述

【8】QString baseName()->返回第一个.之前的文件名(无后缀)
在这里插入图片描述

【9】QString completeBaseName()->返回最后一个.之前的文件名(无后缀)
在这里插入图片描述

【10】QString suffix() ->返回文件最后一个 . 之后的后缀名
【11】QString completeSuffix() ->返回文件第一个 . 之后的后缀名

在这里插入图片描述

【12】bool isDir() -> 判断是否是目录
【13】bool isFile() ->判断是否时文件

【14】bool isExecutable() ->判断文件是否是可执行文件
在这里插入图片描述

【15】QDateTime created() ->返回文件创建时间
【17】QDateTime lastModified() ->返回文件最后一次修改事件
【18】QDateTime lastRead() ->返回文件最后一次读取的时间
【19】bool exists() ->判断文件是否存在
【20】bool exists(QString &file) ->静态函数,判断文件file是否存在

第四章 QDir类

第一节 静态方法

【1】QString tempPath() ->返回临时文件目录
【2】QString rootPath() ->返回根目录名称
【3】QString homePath() ->返回家目录名称

在这里插入图片描述
【4】QString currentPath() ->返回当前目录名称
【5】bool setCurrent (QString &path) ->设置path当前目录
【6】QFileInfoList drives() ->返回系统根目录列表,在windows是盘符列表

在这里插入图片描述

第二节 成员方法

【1】QString absoluteFilePath(QString &fileName)->返回当前文件的绝对目录名
【3】QString absolutePath() ->返回当前目录的绝对路径
【4】QString canonicalPath() ->返回当前目录的标准目录
【5】QString filePath(QString &fileName) ->返回文件的绝对路径名称带后缀
【6】QString dirName() ->返回最后一级目录的名称
【7】bool exists() ->判断当前目录是否存在
【8】QStringList entryList(Filters filters = NoFilters,SortFlags sort=NoSort)->返回目录下的所有文件名、子目录名等
参数需要传递枚举:
QDir::Filters 枚举如下:
QDir::AllDirs :列出所有目录名
QDir::Files :列出所有文件
QDir::Drives :列出所有盘符(Unix系统下无效)
QDir::NoDotAndDotDot :不列出特殊的符号,如”.”和”…”
QDir::AllEntries: 列出目录下的所有项目

【9】bool mkdir(QString &dirName)->在当前目录创建一个子目录
【10】bool rmdir(QString &dirName) ->删除指定的目录
【11】bool remove(QString &fileName) ->删除当前的目录下文件
【12】bool rename(QString &oldName,QString &newName) -> 将文件或目录重命名
【13】void setPath(QString &path) ->设置QDir对象的当前目录
【14】bool removeRecursively() ->删除当前目录及其这个目录下的所有文件
在这里插入图片描述

第六章 QTempraryDir和QTemporaryFile类

用于创建、删除、临时目录/文件的类

第一节 成员方法

【1】void setAutoRemove(bool b) ->设置为是否自动删除
【2】QString path() ->返回创建的临时目录名称
【3】bool remove() ->删除此临时目录及其下面所有文件
【4】open() ->用于打开临时文件 [静态方法]
在这里插入图片描述

第七章 QFileSystemWatcher类

主要用于对目录和文件进行监视,信号与槽,当目录下的文件新建、删除会发射directoryChanged()信号,当文件发生修改、重命名等操作时,会发射fileChanged()信号

第一节 常用方法

【1】bool addPath(QString &path) ->添加一个监听的目录或文件
【2】QStringList addPaths(QStringList &paths) ->添加需要监听的目录或文件列表
【3】QStringList directories() ->返回监听的目录列表
【4】QStringList files() ->返回监听的文件列表
【5】bool removePath(QString &path) ->移除监听的目录或文件
【6】QStringList removePaths(QStringList &paths) ->移除监听的目录或文件列表

在这里插入图片描述

第八章 QFileDialog类

文件对话框

第一节 静态方法

【1】QString curPath =QDir::currentPath();//获取当前路径
QString openTitle =“打开一个文件”;
QString filter =“程序文件(.h .cpp);;文本文件(.txt);;所有文件(.*)”;//文件过滤器
//打开文件对话框
QString FilePath = QFileDialog::getOpenFileName(this,openTitle,curPath,filter);
在这里插入图片描述


【2】QString curPath =QDir::currentPath();//获取当前路径 //打开一个存在的文件目录
QString curdir
=QFileDialog::getExistingDirectory(this,tr(“打开一个目录”),curPath,QFileDialog::ShowDirsOnly
| QFileDialog::DontResolveSymlinks);//打开已经存在的目录
//DontResolveSymlinks 不要解析文件对话框中的符号链接。默认情况下,符号链接将被解析
在这里插入图片描述

第九章 源码

【1】mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QFileInfo>
#include <QDir>
#include <QCoreApplication>
#include <QFile>
#include <QFileDialog>
#include <QFileSystemWatcher>//监听文件
#include <QTemporaryDir>
#include <QTemporaryFile>

namespace Ui {
    
    
class MainWindow;
}

class MainWindow : public QMainWindow
{
    
    
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    void showButtonInfo(QObject *buttoner);//设置每个按钮点击后的文本显示
//ui界面直接跳转到槽
private slots:
    void on_pb_6_clicked();
    void on_pb_openfile_clicked();
    void on_pb_opendir_clicked();
    void on_pb_openfile_4_clicked();
    void on_pb_opendir_2_clicked();
    void on_pb_openfile_3_clicked();
    void on_pb_13_clicked();
    void on_pb_14_clicked();
    void on_pb_18_clicked();
    void on_pb_17_clicked();
    void on_pb_3_clicked();
    void on_pb_5_clicked();
    void on_pb_7_clicked();
    void on_pb_1_clicked();
    void on_pb_2_clicked();
    void on_pb_4_clicked();
    void on_pb_10_clicked();
    void on_pb_11_clicked();
    void on_pb_8_clicked();
    void on_pb_9_clicked();
    void on_pb_12_clicked();
    void on_pushButton_3_clicked();
    void on_pb_19_clicked();
    void on_pb_15_clicked();
    void on_pb_16_clicked();
    void on_pb_20_clicked();
    void on_pb_21_clicked();
    void on_pb_openfile_2_clicked();
//自定义槽
private slots:
    void on_directoryChanged(const QString &path);
    void on_fileChanged(const QString &path);

private:
    Ui::MainWindow *ui;
    QFileSystemWatcher fileSysWatcher;
};

#endif // MAINWINDOW_H

【2】mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    
    
    ui->setupUi(this);
    //只要添加了祖类QObject类的宏Q_OBJECT,可使用国际语言转换函数tr()
    this->setWindowTitle(tr("目录和文件操作"));
}

MainWindow::~MainWindow()
{
    
    
    delete ui;
}

//fileInfo.baseName()槽函数 文件名  没后缀
void MainWindow::on_pb_6_clicked()
{
    
    
    showButtonInfo(sender());//传递按钮
    QFileInfo fileInfo(ui->lineEdit->text());//获取文件路径
    const QString str = fileInfo.baseName();//获取名字
    ui->plainTextEdit->appendPlainText(tr("第一个.之前的(文件名):"+str.toUtf8()+"\n"));//设置文本
    ui->statusBar->showMessage(tr("fileInfo.baseName()..."));

}
//设置每个按钮点击后的文本显示 【减少代码冗余量】
void MainWindow::showButtonInfo(QObject *buttoner)
{
    
    
    QPushButton *button =static_cast<QPushButton *>(buttoner);//强制转化类型
    ui->plainTextEdit->appendPlainText(tr("按钮:"+button->text().toUtf8()));//设置按钮文本
}
//打开文件 设置文件路径
void MainWindow::on_pb_openfile_clicked()
{
    
    
    QString curPath =QDir::currentPath();//获取当前路径
    qDebug()<<"curPath="<<curPath<<endl;
    QString openTitle ="打开一个文件";
    QString filter ="程序文件(*.h *.cpp);;文本文件(*.txt);;所有文件(*.*)";//文件过滤器
    QString FilePath = QFileDialog::getOpenFileName(this,openTitle,curPath,filter);
    qDebug()<<"FilePath="<<FilePath<<endl;
    if(FilePath.isEmpty()){
    
    
        return;
    }
    //设置文件路径
    ui->lineEdit->setText(tr(FilePath.toUtf8()));
    ui->statusBar->showMessage(tr("打开文件..."));
}
//打开一个目录 获取目录路径
void MainWindow::on_pb_opendir_clicked()
{
    
    
    QString curPath =QDir::currentPath();//获取当前路径
    QString curdir =QFileDialog::getExistingDirectory(this,tr("打开一个目录"),curPath,QFileDialog::ShowDirsOnly
                                                      | QFileDialog::DontResolveSymlinks);//打开已经存在的目录
    //DontResolveSymlinks 不要解析文件对话框中的符号链接。默认情况下,符号链接将被解析。
    qDebug()<<"curPath="<<curPath<<endl;
    //设置目录路径
    ui->lineEdit_2->setText(tr(curdir.toUtf8()));
    ui->statusBar->showMessage(tr("打开目录..."));
}
//对文件进行重命名
void MainWindow::on_pb_openfile_4_clicked()
{
    
    
    showButtonInfo(sender());
    QString source = ui->lineEdit->text();//获取文件路径
    QFileInfo fileInfo(source);//传入文件名
    QString newname = fileInfo.path()+"/"+fileInfo.baseName()+".XYZ";
    QFile::rename(source,newname);//重命名
    ui->plainTextEdit->appendPlainText(tr("源文件:"+source.toUtf8()));
    ui->plainTextEdit->appendPlainText(tr("重命名为:"+newname.toUtf8()));
    ui->statusBar->showMessage(tr("QFileInfo..."));

}
//QFile
void MainWindow::on_pb_opendir_2_clicked()
{
    
    
    showButtonInfo(sender());
    QString source = ui->lineEdit->text();//获取文件路径
    bool file = QFile::exists(source);//判断文件是否存在
    if(file)
        ui->plainTextEdit->appendPlainText(tr("文本存在 true"));
    else
        ui->plainTextEdit->appendPlainText(tr("文件不存在 false"));

    //设置文件权限
    QFile file1(source);
    file1.setPermissions(QFileDevice::ReadOwner);

    ui->plainTextEdit->appendPlainText("文件权限:"+QString("%1").arg(file1.permissions()));

    ui->statusBar->showMessage(tr("QFile类..."));
}
//清除文本框
void MainWindow::on_pb_openfile_3_clicked()
{
    
    
    ui->plainTextEdit->clear();
    ui->statusBar->showMessage(tr("清除文本框..."));
}
//列出所有子目录
void MainWindow::on_pb_13_clicked()
{
    
    
    showButtonInfo(sender());

    QDir dir(ui->lineEdit_2->text());//获取目录路径
    //NoDotAndDotDot:不列出 隐藏目录:.  ..
    QStringList strlist =dir.entryList(QDir::Dirs|QDir::NoDotAndDotDot);
    ui->plainTextEdit->appendPlainText(tr("列出所有子目录: "));
    for(int i=0;i<strlist.count();i++)
    {
    
    
        ui->plainTextEdit->appendPlainText(tr("%1").arg(strlist.at(i)));
    }
    ui->statusBar->showMessage(tr("列出所有子目录..."));
}
//列出目录下的所有文件
void MainWindow::on_pb_14_clicked()
{
    
    
    showButtonInfo(sender());

    QDir dir(ui->lineEdit_2->text());//获取目录路径
    //NoDotAndDotDot:不列出 隐藏目录:.  ..
    QStringList strlist =dir.entryList(QDir::Files);
    ui->plainTextEdit->appendPlainText(tr("列出目录下的所有文件: "));
    for(int i=0;i<strlist.count();i++)
    {
    
    
        ui->plainTextEdit->appendPlainText(tr("%1").arg(strlist.at(i)));
    }
    ui->statusBar->showMessage(tr("列出目录下的所有文件..."));
}
//addPath()开始监听
void MainWindow::on_pb_18_clicked()
{
    
    
    showButtonInfo(sender());

    ui->plainTextEdit->appendPlainText("监听目录:"+ui->lineEdit_2->text()+"\n");
    ui->plainTextEdit->appendPlainText("监听文件:"+ui->lineEdit->text()+"\n");
    fileSysWatcher.addPath(ui->lineEdit_2->text());//监听目录
    fileSysWatcher.addPath(ui->lineEdit->text());//监听文件
    QObject::connect(&fileSysWatcher,&QFileSystemWatcher::directoryChanged,this,&MainWindow::on_directoryChanged);
    QObject::connect(&fileSysWatcher,&QFileSystemWatcher::fileChanged,this,&MainWindow::on_fileChanged);
    ui->statusBar->showMessage("addPath()开始监听...");
}

//removePath()停止监听
void MainWindow::on_pb_17_clicked()
{
    
    
    showButtonInfo(sender());

    ui->plainTextEdit->appendPlainText("停止监听目录:"+ui->lineEdit_2->text()+"\n");
    ui->plainTextEdit->appendPlainText("停止监听文件:"+ui->lineEdit->text()+"\n");
    fileSysWatcher.removePath(ui->lineEdit_2->text());//监听目录
    fileSysWatcher.removePath(ui->lineEdit->text());//监听文件
    QObject::disconnect(&fileSysWatcher,&QFileSystemWatcher::directoryChanged,this,&MainWindow::on_directoryChanged);
    QObject::disconnect(&fileSysWatcher,&QFileSystemWatcher::fileChanged,this,&MainWindow::on_fileChanged);
    ui->statusBar->showMessage("removePath()停止监听...");
}
//监听目录
void MainWindow::on_directoryChanged(const QString &path)
{
    
    
    ui->plainTextEdit->appendPlainText(path);
    ui->plainTextEdit->appendPlainText(tr("目录发生了改变\n"));
    ui->statusBar->showMessage("监听目录...");
}
//监听文件
void MainWindow::on_fileChanged(const QString &path)
{
    
    
    ui->plainTextEdit->appendPlainText(path);
    ui->plainTextEdit->appendPlainText(tr("文件发生了改变\n"));
    ui->statusBar->showMessage("监听文件...");
}
//获取文件名
void MainWindow::on_pb_3_clicked()
{
    
    
    showButtonInfo(sender());
    QString path = ui->lineEdit->text();
    QFileInfo info(path);
    ui->plainTextEdit->appendPlainText("文件名(有后缀):"+info.fileName());
}
//获取文件大小size()
void MainWindow::on_pb_5_clicked()
{
    
    
    showButtonInfo(sender());
    QString path = ui->lineEdit->text();
    QFileInfo info(path);
    QFile  file(path);
    ui->plainTextEdit->appendPlainText(tr("QFileInfo文件大小:%1").arg(info.size()));
    ui->plainTextEdit->appendPlainText(tr("QFile文件大小:%1").arg(file.size()));

}
//path()
void MainWindow::on_pb_7_clicked()
{
    
    
    showButtonInfo(sender());
    QString path = ui->lineEdit->text();
    QFileInfo info(path);
    ui->plainTextEdit->appendPlainText("路径(当前目录):"+info.path());
}
//filePath()
void MainWindow::on_pb_4_clicked()
{
    
    
    showButtonInfo(sender());
    QString path = ui->lineEdit->text();
    QFileInfo info(path);
    ui->plainTextEdit->appendPlainText("路径(文件):"+info.filePath());
}
//absoluteFilePath()
void MainWindow::on_pb_1_clicked()
{
    
    
    showButtonInfo(sender());
    QString path = ui->lineEdit->text();
    QFileInfo info(path);
    ui->plainTextEdit->appendPlainText("文件绝对路径(文件):"+info.absoluteFilePath());
}
//absolutePath()
void MainWindow::on_pb_2_clicked()
{
    
    
    showButtonInfo(sender());
    QString path = ui->lineEdit->text();
    QFileInfo info(path);
    ui->plainTextEdit->appendPlainText("绝对路径(目录):"+info.absolutePath());
}

//isDir()
void MainWindow::on_pb_10_clicked()
{
    
    
    showButtonInfo(sender());
    QString pathdir = ui->lineEdit_2->text();
    QFileInfo info(pathdir);
    ui->plainTextEdit->appendPlainText("是(目录):"+QString("%1").arg(info.isDir()));
}
//isFile() isExecutable()
void MainWindow::on_pb_11_clicked()
{
    
    
    showButtonInfo(sender());
    QString path = ui->lineEdit->text();
    QFileInfo info(path);
    ui->plainTextEdit->appendPlainText("是(文件):"+QString("%1").arg(info.isFile()));
    ui->plainTextEdit->appendPlainText("是(可执行文件):"+QString("%1").arg(info.isExecutable()));
}
//completeBaseName()
void MainWindow::on_pb_8_clicked()
{
    
    
    showButtonInfo(sender());
    QString path = ui->lineEdit->text();
    QFileInfo info(path);
    ui->plainTextEdit->appendPlainText("文件最后一个.之前(文件名):"+QString("%1").arg(info.completeBaseName()));
}
//suffix()
void MainWindow::on_pb_9_clicked()
{
    
    
    showButtonInfo(sender());
    QString path = ui->lineEdit->text();
    QFileInfo info(path);
    ui->plainTextEdit->appendPlainText("文件最后一个.后缀名(文件后缀名):"+QString("%1").arg(info.suffix()));
}
//completeSuffix()
void MainWindow::on_pb_12_clicked()
{
    
    
    showButtonInfo(sender());
    QString path = ui->lineEdit->text();
    QFileInfo info(path);
    ui->plainTextEdit->appendPlainText("第一个.后缀名(文件后缀名):"+QString("%1").arg(info.completeSuffix()));
}
//QCoreApplication类
void MainWindow::on_pb_openfile_2_clicked()
{
    
    
    showButtonInfo(sender());
    ui->plainTextEdit->appendPlainText(tr("返回应用程序启动目录=%1").arg(QCoreApplication::applicationDirPath()));
    ui->plainTextEdit->appendPlainText(tr("返回应用程序启动文件名=%1").arg(QCoreApplication::applicationFilePath()));
    ui->plainTextEdit->appendPlainText(tr("返回应用程序文件名=%1").arg(QCoreApplication::applicationName()));
    ui->plainTextEdit->appendPlainText(tr("动态加载库文件 应用程序搜索的目录列表=%1").arg(QCoreApplication::applicationName()));

    //设置机构名
    QCoreApplication::setOrganizationName(tr("C++是最好的编程语言"));
    ui->plainTextEdit->appendPlainText(tr("返回应用程序机构名=%1").arg(QCoreApplication::organizationName()));

}
//退出应用程序
void MainWindow::on_pushButton_3_clicked()
{
    
    
    QCoreApplication::exit();
}
//drives() 返回系统的根目录列表 在windows上是盘符列表
void MainWindow::on_pb_19_clicked()
{
    
    
    showButtonInfo(sender());
    QFileInfoList list = QDir::drives();
    for(int i=0;i<list.size();i++)
    {
    
    
        QFileInfo info = list.at(i);
        ui->plainTextEdit->appendPlainText(QString("盘符列表: %1").arg(info.path()));
    }
}
//QTemproraryDir和QTemporaryFile
void MainWindow::on_pb_15_clicked()
{
    
    
    showButtonInfo(sender());
    QTemporaryDir dir;
    QTemporaryFile file(dir.path()+"/"+"myfile.txt",this);
    ui->plainTextEdit->appendPlainText("临时目录路径:"+QString(dir.path()));
    ui->plainTextEdit->appendPlainText("临时文件路径:"+QString(file.fileTemplate()));
}

//QFileSystemWatcher类
void MainWindow::on_pb_16_clicked()
{
    
    
    ui->pb_18->click();
    ui->pb_17->click();
}
//libraryPaths()
void MainWindow::on_pb_20_clicked()
{
    
    
    showButtonInfo(sender());
    QStringList list = QCoreApplication::libraryPaths();
    for(int i=0;i<list.size();i++)
    {
    
    
        ui->plainTextEdit->appendPlainText(list.at(i));
    }

}
//QDir
void MainWindow::on_pb_21_clicked()
{
    
    
     showButtonInfo(sender());
     //静态方法
     ui->plainTextEdit->appendPlainText("临时文件目录名:"+QString(QDir::tempPath()));
     ui->plainTextEdit->appendPlainText("文件根目录:"+QString(QDir::rootPath()));
     ui->plainTextEdit->appendPlainText("家目录名称:"+QString(QDir::homePath()));

     //成员函数
     QDir dir;
     ui->plainTextEdit->appendPlainText("当前路径下绝对文件名:"+QString(dir.absoluteFilePath(ui->lineEdit->text())));
     ui->plainTextEdit->appendPlainText("当前绝对目录路径:"+QString(dir.absolutePath()));
     ui->plainTextEdit->appendPlainText("最后一级目录名称:"+QString(dir.dirName()));
     ui->plainTextEdit->appendPlainText("当前目录标准路径:"+QString(dir.canonicalPath()));
     ui->plainTextEdit->appendPlainText("返回目录下一个文件的目录名:"+QString(dir.filePath(ui->lineEdit->text())));

}

【3】总结

以下按钮都是直接跳转到槽 然后在槽函数实现每个的功能 实际运行自行操作一遍,才能运筹帷幄之中,决胜于千里之外

在这里插入图片描述

========================================文件和目录 篇 (完) 2022/9/3 天气 多云

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_45463480/article/details/126675444