bool classname::DeleteDirectory(QString &DirName)
{
// Q_ASSERT(NULL!=DirName);
if(NULL==DirName) //the dirname is not null
return false;
QDir filedir(DirName);
if(!filedir.exists())
{
//AfxMessageBox("路径不存在!");
return false;
}
QString tempstr;
const QFileInfoList * files = filedir.entryInfoList();
if ( files )
{
QFileInfoListIterator it( *files );
QFileInfo * fi;
while( (fi=it.current()) != 0 )
{
++it;
tempstr = fi->fileName();
if ( tempstr == "." || tempstr == ".." ) ; // nothing
else if ( fi->isDir() ) //// 实现递归调用
{
DirName = DirName+("/")+tempstr;
DeleteDirectory(DirName );
}
else if ( fi->isFile() )
{
QFile tempfile(tempstr);
// 删除文件
filedir.remove( tempfile.name() );
}
} //end while
} //end if
// 删除文件夹
if(filedir.exists(DirName)){
if(!filedir.rmdir(DirName)){
return FALSE;
}
}
return true;
}