返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >利用QDir实现删除选定文件目录下的空文件夹
  • 924
分享到

利用QDir实现删除选定文件目录下的空文件夹

QDir删除空文件夹QtQDir删除空文件夹Qt删除空文件夹 2022-11-13 13:11:52 924人浏览 安东尼
摘要

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

一、项目介绍

本文介绍利用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则表示删除失败:


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() <= 0)
                {
                    qDebug()<<QString("remove empty dir: %1.").arg(qstrSubFilePath);
                    qdrSubPath.rmdir(qstrSubFilePath);
                }
            }
        }

    }while(0);

    return bRet;
}

按钮点击槽函数:

void Widget::on_pbn_del_clicked()
{
    //选择文件目录
    QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"),
                                                    "",
                                                    QFileDialog::ShowDirsOnly
                                                    | QFileDialog::DontResolveSymlinks);
    qDebug()<<dir;
    bool isok=clearEmptyFolder(dir);
    if(isok)
        QMessageBox::infORMation(this,"success","删除完成");
    else
        QMessageBox::information(this,"error","错误");
}

五、效果演示

完整效果如下:

到此这篇关于利用QDir实现删除选定文件目录下的空文件夹的文章就介绍到这了,更多相关QDir删除空文件夹内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 利用QDir实现删除选定文件目录下的空文件夹

本文链接: https://lsjlt.com/news/171403.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 利用QDir实现删除选定文件目录下的空文件夹
    目录一、项目介绍二、项目基本配置三、UI界面设置四、主程序实现4.1 widget.h头文件4.2 widget.cpp源文件五、效果演示一、项目介绍 本文介绍利用QDir删除选定文...
    99+
    2022-11-13
    QDir删除空文件夹 Qt QDir删除空文件夹 Qt 删除空文件夹
  • nodejs怎么清空/删除指定文件夹下面所有文件或文件夹
    这篇“nodejs怎么清空/删除指定文件夹下面所有文件或文件夹”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“nodejs怎么...
    99+
    2023-07-06
  • php怎样删除目录下所有文件夹
    这篇文章给大家分享的是有关php怎样删除目录下所有文件夹的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php删除目录下所有文件夹的方法:首先删除目录下的文件,代码为【$dh=opendir($dir)】;然后删除...
    99+
    2023-06-06
  • nodejs清空/删除指定文件夹下面所有文件或文件夹的方法示例
    同步函数: //使用fs.readdir()方法读取文件夹中的所有文件和文件夹,然后使用递归来删除每个文件和文件夹。 const fs = require('fs'); const ...
    99+
    2023-05-15
    nodejs 清空 删除 文件夹 文件
  • Linux下怎么定时删除目录文件
    这篇文章主要介绍了Linux下怎么定时删除目录文件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux下怎么定时删除目录文件文章都会有所收获,下面我们一起来看看吧。要实现定时删除某个目录下的所有文件需要用到...
    99+
    2023-06-27
  • Java实现文件及文件夹的删除
    本文实例为大家分享了Java实现文件及文件夹的删除,供大家参考,具体内容如下 1、删除单个文件 public static boolean deleteFile(String fil...
    99+
    2024-04-02
  • Linux下如何删除文件目录
    这篇文章主要介绍了Linux下如何删除文件目录的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux下如何删除文件目录文章都会有所收获,下面我们一起来看看吧。使用rmdir删除目录Rmdir命令间成“remo...
    99+
    2023-06-28
  • 删除目录下所有文件 javascript
    在现代互联网时代,JavaScript已经成为前端开发的核心之一。它可以用来为网站、应用程序和其他在线体验创建动态和交互式体验。对于想要提高自己的JavaScript编程技能的开发人员来说,实现删除目录下所有文件可能是所有初学者都想要尝试的...
    99+
    2023-05-17
  • Shell脚本实现递归删除空文件夹
    有时我们需要递归删除空文件夹,网上找了一下,没有发现比较好的Shell脚本,于是自己动手写了一个 脚本 #!/bin/bash # author: 十年后的卢哥哥 # des: delete empt...
    99+
    2022-06-04
    递归 脚本 文件夹
  • 怎么用php删除文件夹下的某个子文件夹
    如果你是一个 PHP 开发者,你可能会遇到需要删除文件夹下的某个文件夹的需求。虽然 PHP 提供了删除文件和文件夹的内置函数,但却没有提供单独删除文件夹的函数。在这篇文章中,我们将向你展示如何使用 PHP 删除文件夹下的某个子文件夹。删除文...
    99+
    2023-05-14
    php php文件目录
  • 如何用php删除文件夹下的某个子文件夹
    本文小编为大家详细介绍“如何用php删除文件夹下的某个子文件夹”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何用php删除文件夹下的某个子文件夹”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。删除文件夹下的子文...
    99+
    2023-07-05
  • 如何删除vue项目下的node_modules文件夹
    目录删除vue下的node_modules文件夹利用命令行删除 node_modules文件删除vue下的node_modules文件夹 全局安装rimraf cnpm i -g r...
    99+
    2024-04-02
  • C#中怎么利用递归删除文件目录或文件
    本篇文章给大家分享的是有关C#中怎么利用递归删除文件目录或文件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。C#删除文件目录或文件的功能:///〈summary〉 &...
    99+
    2023-06-17
  • Linux 删除文件夹和文件的命令(强制删除包括非空文件)
    linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可。 直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字 -r 就是向下递归,...
    99+
    2022-06-04
    linux删除文件夹命令 linux 删除文件命令
  • linux 删除指定文件夹外的其他所有(文件)文件夹
    文章目录 方法一. 删除指定文件夹外的其他所有文件夹命令:方法二. 删除指定文件夹外的其他所有文件夹命令:三. 其他方法(没有验证)1、方法1,比较麻烦的做法是:2、方法2,需要在当前文件夹中...
    99+
    2023-09-16
    linux 服务器 unix
  • Golang 删除文件并递归删除空目录的操作
    目的: 删除文件之后,如果目录为空,递归删除为空的目录。 svr.dataDir指目录的最外层,递归删除目录的时候判断到这一层即可。 eg:/Users/danny/data f...
    99+
    2024-04-02
  • python 删除文件、清空目录的方法总
    Python os.remove() 方法 os.remove() 方法用于删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError。 在Unix, Windows中有效 以下实例演示了 remove() 方法的使用: ...
    99+
    2023-01-31
    清空 文件 目录
  • Shell中怎么实现递归删除空文件夹
    Shell中怎么实现递归删除空文件夹,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。代码如下:#!/bin/bash# author: 十年后的卢哥哥# des:...
    99+
    2023-06-09
  • Java实现文件夹中内容定时删除
    今天我和大家分享一下用Java实现对一个文件夹中内容定时删除。 让我们来看一下对一个文件夹中内容定时删除的功能。 对于文件的删除就是用File类中的delete()方法删除当前Fil...
    99+
    2024-04-02
  • Java实现文件或文件夹的复制到指定目录实例
    整理文档,搜刮出一个Java实现文件或文件夹的复制到指定目录的代码,稍微整理精简一下做下分享。import java.io.File; import java.io.FileInputStream; import java.io.FileO...
    99+
    2023-05-31
    java 文件 复制
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作