【Qt5开发及实例】26、得到文件的大小和目录的路径

来源:互联网 发布:cs1.6 for mac 编辑:程序博客网 时间:2024/06/06 00:51

说实话,我是为了混个持之以恒的标签的 = =,谁叫我过年都没怎么写呢!!!!


/*** 书本:【Qt5开发及实例】* 功能:得到文件的大小和目录的路径* 文件:main.cpp* 时间:2015年2月3日21:18:16* 作者:cutter_point*/#include <QCoreApplication>#include <QStringList>#include <QDir>#include <QtDebug>//根据给的路径得到文件的大小和目录qint64 du(const QString &path){  QDir dir(path); //这个类可以提供文件的目录和类容  qint64 size = 0;  //得到文件目录下的所有的文件和目录  foreach(QFileInfo fileInfo, dir.entryInfoList(QDir::Files))    {      size += fileInfo.size();    //把所有文件的大小加起来    }  //得到所有子目录下文件的大小  //列出目录列表,不列出特殊的条目,“.”和".."  foreach(QString subDir, dir.entryList(QDir::Dirs|QDir::NoDotAndDotDot))    {      //路径+当前系统下的分割符+目录名      size += du(path + QDir::separator() + subDir);    //递归调用,遍历所有目录,深度优先    }  char unit = 'B';  qint64 curSize = size;    //这个目录的大小  if(curSize > 1024)    {      //当前的大小比1024个字节还大,上面计数是按字节大小得到的fileInfo.size()      curSize /= 1024;  //除      unit = 'K';   //KB      if(curSize > 1024)        {          //还大          curSize /= 1024;          unit = 'M';   //MB          if(curSize > 1024)            {              curSize /= 1024;              unit = 'G';   //GB            } //if        }   //if    } //if  qDebug()<<curSize<<unit<<"\t"<<qPrintable(path)<<endl;  return size;}int main(int argc, char *argv[]){  QCoreApplication a(argc, argv);  QStringList args = a.arguments();  QString path;  if(args.count() > 1)    {      path = args[1];    }  else    {      path = QDir::currentPath();    }  qDebug()<<path<<endl;//  path = "D:/Qt/5.1.0-rel-static";//  path = "E:/DNF";//  path = "E:/英雄联盟";//  path = "F:/传智播客Hibernate视频教程";  du(path);  return a.exec();}




0 0
原创粉丝点击