一杯清酒邀明月
天下本无事,庸人扰之而烦耳。
posts - 3121,comments - 209,views - 578万

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

复制代码
 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 }
复制代码

 

posted on   一杯清酒邀明月  阅读(337)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
历史上的今天:
2021-06-01 Qt QSS QPushButton
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示