这是 我目前的代码
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的)