日志
Qt 删除文件夹及其子文件夹。参考别人代码。
2015-12-29 09:43
bool CConfigDlg::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; 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("."); 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; } |
蚂蚁power:对的。但是公司用的一直都是4.8.4。removeRecursively() 是5.0还是5.2忘记了。
2016-01-08 08:52