Qt居然没有实现删除指定目录的方法,真是无语。自己动手,丰衣足食。以下函数实现了删除 指定路径的文件指定路径的非空文件夹


inline bool DeleteFileOrFolder( const QString& strPath )
{
	if( strPath.isEmpty() || !QDir().exists( strPath ) )
		return false;
	
	QFileInfo fileInfo( strPath );

	if( fileInfo.isFile() )
		QFile::remove( strPath );
	else if( fileInfo.isDir() )
	{
		QDir qDir( strPath );
		qDir.setFilter( QDir::AllEntries | QDir::NoDotAndDotDot );
		QFileInfoList fileInfoLst = qDir.entryInfoList();
		foreach( QFileInfo qFileInfo, fileInfoLst )
		{
			if( qFileInfo.isFile() )
				qDir.remove( qFileInfo.absoluteFilePath() );
			else
			{
				DeleteFileOrFolder( qFileInfo.absoluteFilePath() );
				qDir.rmdir( qFileInfo.absoluteFilePath() );
			}
		}
		qDir.rmdir( fileInfo.absoluteFilePath() );
	}
	
	return true;
}