您的位置:首页 > 编程语言 > Qt开发

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>

网上有个哥们发了一个,拿来一用不对,虽然说起来功能很简单,但逻辑还是有点小复杂的,代码已测试过,木有问题~~~~

以前写了好多小东西都没有记录下来,以后都发到博客上跟大家交流,如果代码有问题请给我留评论,我会留意。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐