bool ALUtility::removeFolderContent(const QString &folderDir)
{
QDir dir(folderDir);
QFileInfoList fileList;
QFileInfo curFile;
if(!dir.exists()) {return false;}//文件不存,则返回false
fileList=dir.entryInfoList(QDir::Dirs|QDir::Files
|QDir::Readable|QDir::Writable
|QDir::Hidden|QDir::NoDotAndDotDot
,QDir::Name);
while(fileList.size()>0)
{
int infoNum=fileList.size();
for(int i=infoNum-1;i>=0;i--)
{
curFile=fileList[i];
if(curFile.isFile())//如果是文件,删除文件
{
QFile fileTemp(curFile.filePath());
fileTemp.remove();
fileList.removeAt(i);
}
if(curFile.isDir())//如果是文件夹
{
QDir dirTemp(curFile.filePath());
QFileInfoList fileList1=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(int j=0;j<fileList1.size();j++)
{
if(!(fileList.contains(fileList1[j])))
fileList.append(fileList1[j]);
}
}
}
}
}
dir.removeRecursively();
return true;
}
转载于:Qt 遍历目录并删除目录下所有文件_luoyayun361的专栏-CSDN博客_qt删除目录下所有文件