Qt 删除目录

删除目标的目录,若该目录下有子目录,一并删除。

复制代码
 1 //判断是否存在子目录
 2 bool judgeDir(QDir dir)
 3 {
 4     dir.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot | QDir::Hidden);
 5     foreach(QFileInfo fileInfo, dir.entryInfoList())
 6     {
 7         if(fileInfo.isDir())
 8         {
 9             return true;
10         }
11         else if(fileInfo.isFile())
12         {
13             return true;
14         }
15         else
16         {
17             return false;
18         }
19     }
20     return true;
21 }
22 
23 //删除目标目录
24 void delDir(QString path)
25 {
26     if(path.isEmpty())
27     {
28         QMessageBox::warning(this,tr("警告"),tr("路径为空"),QMessageBox::Yes);
29         return;
30     }
31     QDir dir(path);
32 
33     dir.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot | QDir::Hidden);
34     foreach(QFileInfo fileInfo, dir.entryInfoList())
35     {
36         if(fileInfo.isFile())
37         {
38             if(!fileInfo.isWritable())
39             {
40                 QFile file(fileInfo.absoluteFilePath());
41                 file.setPermissions(QFile::WriteOwner);
42             }
43 
44             fileInfo.dir().remove(fileInfo.fileName());
45 
46         }
47         else if(fileInfo.isDir())
48         {
49             delDir(fileInfo.absoluteFilePath());
50         }
51     }
52     dir.rmpath(dir.absolutePath());
53 }
54 
55 //删除传入的目录
56 void deleteFile(QString path)
57 {
58     QDir dir(path);
59     int saveDel = QMessageBox::question(this,tr("提示"),tr("确定删除目录").arg(path), QMessageBox::Yes | QMessageBox::No );
60    
61     if(QMessageBox::Yes == saveDel)
62     {
63         QDir currentDir(path);
64         if(judgeDir(currentDir))
65         {
66             delDir(currentDir.absolutePath());
67         }
68         else
69         {
70             dir.rmdir(path);
71         }
72     }
73 }
复制代码

 

posted @   漆天初晓  阅读(3074)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥
点击右上角即可分享
微信分享提示