qt删除指定文件夹下所有内容,包括文件夹、文件
2012-09-07 23:27
916 查看
/*删除文件夹内容,不删除该文件夹本身
//入口参数:constQString&folderDir---------------------文件夹全路径
//出口参数:无
//返回值:true----删除成功;false----文件夹不存在
//备注:无*/
boolremoveFolderContent(constQString&folderDir)
{
QDirdir(folderDir);
QFileInfoListfileList;
QFileInfocurFile;
if(!dir.exists()){returnfalse;}//文件不存,则返回false
fileList=dir.entryInfoList(QDir::Dirs|QDir::Files
|QDir::Readable|QDir::Writable
|QDir::Hidden|QDir::NoDotAndDotDot
,QDir::Name);
while(fileList.size()>0)//跳出条件
{
intinfoNum=fileList.size();
for(inti=infoNum-1;i>=0;i--)
{
curFile=fileList[i];
if(curFile.isFile())//如果是文件,删除文件
{
QFilefileTemp(curFile.filePath());
fileTemp.remove();
fileList.removeAt(i);
}
if(curFile.isDir())//如果是文件夹
{
QDirdirTemp(curFile.filePath());
QFileInfoListfileList1=dirTemp.entryInfoList(QDir::Dirs|QDir::Files
|QDir::Readable|QDir::Writable
|QDir::Hidden|QDir::NoDotAndDotDot
,QDir::Name);
if(fileList1.size()==0)//下层没有文件或文件夹
{
dirTemp.rmdir(".");
fileList.removeAt(i);
}
else//下层有文件夹或文件
{
for(intj=0;j<fileList1.size();j++)
{
if(!(fileList.contains(fileList1[j])))
fileList.append(fileList1[j]);
}
}
}
}
}
returntrue;
}
//头文件包含
#include<QDir>[code]#include<QFileInfo>
#include<QString>
#include<QList>
#include<QFileInfo>
#include<QFile>
网上有个哥们发了一个,拿来一用不对,虽然说起来功能很简单,但逻辑还是有点小复杂的,代码已测试过,木有问题~~~~
以前写了好多小东西都没有记录下来,以后都发到博客上跟大家交流,如果代码有问题请给我留评论,我会留意。
相关文章推荐
- Java删除指定文件夹下的所有内容(包括此文件夹)
- 删除指定文件夹下所有文件(包括子文件夹及子文件夹下的所有文件)
- java删除指定路径下所有的文件, 及该文件夹里的所有文件夹,不包括该文件夹
- 删除指定文件夹中除保留的文件外的所有文件批处理 删除指定文件夹下的空文件夹,包括子目录批处理
- 删除指定的文件夹(包括其中的所有文件)
- Python_删除/创建指定目录及其下所有子目录的文件,该文件记录当前文件夹的内容
- Java删除指定文件夹下的所有内容的方法(包括此文件夹)
- Python_删除/创建指定目录及其下所有子目录的文件,该文件记录当前文件夹的内容
- DOS命令,删除指定文件夹的全部内容 删除指定文件夹所有文件
- HDFS练习5-----删除指定目录下的所有的空文件和空文件夹(包含子文件夹下的内容)
- linux 删除所有文件夹下指定文件名的文件
- 如何删除文件夹下所有的文件(包括非空目录和文件)????
- windows api 实现删除指定目录下的所有文件(包括子文件夹下的所有文件)
- php删除文件夹下所有文件包括非法文件夹
- windows api 实现删除指定目录下的所有文件(包括子文件夹下的所有文件)
- 转:delphi 删除指定文件夹下所有文件
- C#IO操作,删除指定目录下的所有文件夹和文件
- VC MFC删除指定文件或文件夹内容
- C# 删除、遍历指定目录下的所有指定文件、文件夹
- 删除指定文件夹下所有.php文件,如果子文件夹是空文件夹,也删除。