Qt中删除文件夹的函数(非递归实现)
来源:互联网 发布:网络销售公司有些什么 编辑:程序博客网 时间:2024/05/28 09:33
/*递归删除文件夹,即使里面有内容 ** **dir :文件夹的名字,绝对路径和相对路径均可 ** **返回值 :成功后返回true;否则返回false */ bool removeDirWithContent(const QString &dirName){ static QVector<QString> dirNames; static QString funcErrMsg="删除[%1]失败."; static QString funcInfFndMsg="发现[%1]."; static QString funcInfDelMsg="删除[%1]成功."; QDir dir; QFileInfoList filst; QFileInfoList::iterator curFi; //初始化 dirNames.clear(); if(dir.exists()){ dirNames<<dirName; } else{ return true; } //遍历各级文件夹,并将这些文件夹中的文件删除 for(int i=0;i<dirNames.size();++i){ dir.setPath(dirNames[i]); filst=dir.entryInfoList(QDir::Dirs|QDir::Files |QDir::Readable|QDir::Writable |QDir::Hidden|QDir::NoDotAndDotDot ,QDir::Name); if(filst.size()>0){ curFi=filst.begin(); while(curFi!=filst.end()){ //遇到文件夹,则添加至文件夹列表dirs尾部 if(curFi->isDir()){ dirNames.push_back(curFi->filePath()); }else if(curFi->isFile()){ //遇到文件,则删除之 if(!dir.remove(curFi->fileName())){ return false; } } curFi++; }//end of while } } //删除文件夹 for(int i=dirNames.size()-1;i>=0;--i){ dir.setPath(dirNames[i]); if(!dir.rmdir(".")){ return false; } } return true; }
使用方法:
bool b; b=removeDirWithContent("c:/a/b");
- Qt中删除文件夹的函数(非递归实现)
- 分享一个Qt中删除文件夹的函数(非递归实现)
- 删除非空文件夹的递归算法
- 递归删除非空文件夹
- 递归删除非空文件夹
- 文件夹遍历的非递归实现
- qt删除非空文件夹
- java通过递归实现文件夹的删除
- BST的删除的非递归实现
- Java的copy文件和文件夹以及删除文件夹(包括递归与非递归算法)
- 文件夹的递归删除
- linuxC递归删除某个非空文件夹
- vc 递归删除非空文件夹
- 一个利用递归算法实现删除非空目录的函数
- nodejs中递归删除文件夹
- ackman函数的非递归实现
- Ackerman函数的非递归实现.
- QT复制文件夹、删除非空目录
- 检测应用的版本更新
- 如何用ruby获取本机IP
- 一段代码判断设备5还是5以下
- "数字签名"(digital signature)和"数字证书"(digital certificate)到底是什么
- Android中的MD5加密
- Qt中删除文件夹的函数(非递归实现)
- netapp故障处理
- OC中的常见关键字及一些基础概念
- 控制UITextField只能输入数字
- 高性能网站建设指南(读书笔记)
- adb shell "unknown host service"
- 各章的专业术语介绍
- Push到特定的Controller
- Android小技巧/bitmap合成