这是 我目前的代码
void CFileBrowser::spaceCalculate( const QString & dir )
{
    QDir d( dir );
    QString pathTemp; //临时路径    
    
    if( d.exists() && !d.isReadable() ) return;
        d.setFilter( QDir::Dirs | QDir::Files ); //设置过滤器,列出目录和文件
    d.setSorting( QDir::Name | QDir::DirsFirst | QDir::IgnoreCase | QDir::Reversed );//设置排列顺序,              
    //返回这个目录中所有目录和文件的QFileInfo对象的列表
  const QFileInfoList * list = d.entryInfoList(); 
    QFileInfoListIterator it( *list );
    QFileInfo *fi;
    while( (fi = it.current()) )
    {                    //空目录情况
        if( (fi->fileName() == ".") || (fi->fileName() == "..") )
        {
                pathTemp = fi->filePath();                          //获得路径
            spaceDir += QFileInfo(pathTemp).size();
            ++it;
            continue;
        }
        //文件情况
        if(fi->isFile())
        {
                pathTemp = fi->filePath(); //获得文件路径
                spaceDir += QFileInfo(pathTemp).size();
                ++it;
                continue;
        }
        //处理目录
        if (fi->isDir())
        {
                pathTemp = fi->filePath(); //获得文件路径
            spaceDir += QFileInfo(pathTemp).size();
            //进入该目录,递归调用计算其包含文件/目录的大小
          //  spaceCalculate(pathTemp);
            ++it;
            continue;
        }
            ++it;
    }
}
可以针对 我这个 改进一下吗? (QT的)