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 }
----------------陌上阡头,草长莺飞-----------------
https://www.cnblogs.com/tyche116/
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥