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刪除目錄下所有文件