• Qt 删除某文件目录下的空文件夹


    最近由于业务需求,需要实现删除某个文件目录下的空文件夹功能,具体看如下代码:

     1 bool checkFileOrDirExist(const QString qstrFileDirOrPath)
     2 {
     3     bool bRet = false;
     4     QFileInfo objFileInfo(qstrFileDirOrPath);
     5     if(objFileInfo.isFile())
     6     {
     7         bRet = objFileInfo.exists();
     8     }
     9     else if(objFileInfo.isDir())
    10     {
    11         bRet = objFileInfo.exists();
    12     }
    13     else
    14     {
    15         bRet = false;
    16     }
    17  
    18     return bRet;
    19 }
    20  
    21 /**************************************************
    22  * 功能:删除空的文件夹
    23  * 输入参数:
    24  *      qstrDirPath:文件夹路径
    25  * 返回值:
    26  *      bool:true -- 删除成功,false -- 删除失败
    27  * **************************************************/
    28 bool clearEmptyFolder(const QString& qstrDirPath)
    29 {
    30     bool bRet = true;
    31  
    32     do
    33     {
    34         if(!checkFileOrDirExist(qstrDirPath))
    35         {
    36             bRet = true;
    37             break;
    38         }
    39  
    40         QDir qdrPath(qstrDirPath);
    41         qdrPath.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot | QDir::Hidden);      //set filter
    42         QFileInfoList lstFileInfo = qdrPath.entryInfoList();             //get all file info
    43         foreach(QFileInfo objFileInfo, lstFileInfo)
    44         {
    45             if(objFileInfo.isDir())
    46             {
    47                 QString qstrSubFilePath = objFileInfo.absoluteFilePath();
    48                 clearEmptyFolder(qstrSubFilePath);
    49                 
    50                 QDir qdrSubPath(qstrSubFilePath);
    51                 qdrSubPath.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot | QDir::Hidden);
    52                 QFileInfoList qlstFileInfo =  qdrSubPath.entryInfoList();
    53                 if(qlstFileInfo.count() <= 0)
    54                 {
    55                     logInfo(QString("remove empty dir: %1.").arg(qstrSubFilePath));
    56                     qdrSubPath.rmdir(qstrSubFilePath);
    57                 }
    58             }
    59         }
    60  
    61     }while(0);
    62  
    63     return bRet;
    64 }
  • 相关阅读:
    智能指针之第二印象
    网易实习笔试真题C/C++
    map,hash_map和unordered_map 实现比较
    斐波那契堆(一)之 图文解析 和 C语言的实现
    二项堆(一)之 图文解析 和 C语言的实现
    寻找最小的k个数
    P、NP、NP-Complete、NP-hard问题
    网易有道笔试:求连通图的割点(关节点)
    块设备的读流程分析
    不相交集(The Disjoint Set ADT)
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/16334415.html
Copyright © 2020-2023  润新知