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]); } } } } } return true; }
转载于:Qt 遍历目录并删除目录下所有文件_luoyayun361的专栏-CSDN博客_qt删除目录下所有文件