您当前的位置: 首页 >  qt

wendy_ya

暂无认证

  • 4浏览

    0关注

    342博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Qt实战案例(55)——利用QDir删除选定文件目录下的空文件夹

wendy_ya 发布时间:2022-07-31 16:32:58 ,浏览量:4

目录
    • 一、项目介绍
    • 二、项目基本配置
    • 三、UI界面设置
    • 四、主程序实现
      • 4.1 widget.h头文件
      • 4.2 widget.cpp源文件
    • 五、效果演示

一、项目介绍

本文介绍利用QDir删除选定文件目录下的所有空文件夹。

二、项目基本配置

新建一个Qt案例,项目名称为“DelTest”,基类选择“QWidget”,点击选中创建UI界面复选框,完成项目创建。

三、UI界面设置

UI界面如下: 在这里插入图片描述

序号名称类型属性①pbn_delQPushButtontext:请选择要删除的目录 四、主程序实现 4.1 widget.h头文件

头文件中只需声明按钮点击槽函数:

private slots:
    void on_pbn_del_clicked();
4.2 widget.cpp源文件

定义函数checkFileOrDirExist检查目录是否存在:

bool checkFileOrDirExist(const QString qstrFileDirOrPath)
{
    bool bRet = false;
    QFileInfo objFileInfo(qstrFileDirOrPath);
    if(objFileInfo.isFile())
    {
        bRet = objFileInfo.exists();
    }
    else if(objFileInfo.isDir())
    {
        bRet = objFileInfo.exists();
    }
    else
    {
        bRet = false;
    }

    return bRet;
}

定义clearEmptyFolder用于删除空的文件夹,返回的类型为bool类型若为true则表示删除成功,若为false则表示删除失败:

/**************************************************
 * 功能:删除空的文件夹
 * 输入参数:
 *      qstrDirPath:文件夹路径
 * 返回值:
 *      bool:true -- 删除成功,false -- 删除失败
 * **************************************************/
bool clearEmptyFolder(const QString& qstrDirPath)
{
    bool bRet = true;

    do
    {
        if(!checkFileOrDirExist(qstrDirPath))
        {
            bRet = true;
            break;
        }

        QDir qdrPath(qstrDirPath);
        qdrPath.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot | QDir::Hidden); //设置过滤器
        QFileInfoList lstFileInfo = qdrPath.entryInfoList();   //获取所有文件信息
        foreach(QFileInfo objFileInfo, lstFileInfo)
        {
            if(objFileInfo.isDir())
            {
                QString qstrSubFilePath = objFileInfo.absoluteFilePath();
                clearEmptyFolder(qstrSubFilePath);

                QDir qdrSubPath(qstrSubFilePath);
                qdrSubPath.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot | QDir::Hidden);
                QFileInfoList qlstFileInfo =  qdrSubPath.entryInfoList();
                if(qlstFileInfo.count()             
关注
打赏
1659256378
查看更多评论
0.0381s