分享一个Qt中删除文件夹的函数(非递归实现)
来源:互联网 发布:python图片处理模块 编辑:程序博客网 时间:2024/05/19 17:24
/*递归删除文件夹,即使里面有内容****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中删除文件夹的函数(非递归实现)
- 一个利用递归算法实现删除非空目录的函数
- 删除非空文件夹的递归算法
- 在lua中递归删除一个文件夹
- 在Lua中递归删除一个文件夹
- 在lua中递归删除一个文件夹
- 在lua中递归删除一个文件夹
- MFC 中 删除一个非空文件夹
- 递归删除一个文件夹
- 递归删除非空文件夹
- 递归删除非空文件夹
- 一个函数实现树的非递归前、中、后序遍历
- 文件夹遍历的非递归实现
- 分享一个用递归实现的 strlen函数
- 分享一个用递归实现strlen()函数的例子
- qt删除非空文件夹
- java通过递归实现文件夹的删除
- 如何设置svn服务器端的服务开机启动
- 多网卡或存在虚拟机的情况,socket广播包发送会出现问题
- Samba常用配置及GUEST访问
- Fastcgi 白皮书
- codeforces----191A Dynasty Puzzles
- 分享一个Qt中删除文件夹的函数(非递归实现)
- c语言实现c++功能
- 位图显示
- rails入门(2)
- ISAPI_Rewrite
- SVN服务器端安装、配置与管理
- 【基于贪心的动态规划】【NOI2006】千年虫
- Asterisk 函数
- [回顾]清华申请退学博士作品:完全用Linux工作