新建控制檯應用code
#include <QCoreApplication> #include <QStringList> #include <QDir> #include <QtDebug> qint64 du(const QString &path) { QDir dir(path); // if(dir.exists()){ // if(dir.isAbsolute()){ // qDebug() << "絕對路徑" << "總條目(文件、目錄、符合連接)" << dir.count(); // qDebug() << "目錄下全部條目" << dir.entryList(); // } // } qint64 size = 0; foreach(QFileInfo fileInfo,dir.entryInfoList(QDir::Files)) //獲取dir下面文件目錄的大小 { 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) { curSize/=1024; unit ='K'; if(curSize>1024) { curSize/=1024; unit ='M'; if(curSize>1024) { curSize/=1024; unit ='G'; } } } 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; du(path); return a.exec(); }