花了一點時間寫出這個小function, 覺得結構挺好用的, 貼出來分享留存一下
qint64 SCAN_Size(QString source) //帶入的source即為資料夾路徑名稱
{
QDir srcDir( source );
QStringList string;
qint64 countSize = 0;
string <<"*";
QFileInfoList list = srcDir.entryInfoList(string,
QDir::Dirs | QDir::NoDotAndDotDot,
QDir::Name | QDir::Reversed);
if(list.count() > 0)
{
// still in folders list
for(int i = 0; i < list.count(); i++)
{
qDebug()<<__LINE__<<": List("<<i<<") : "<<list.at(i).fileName();
countSize = countSize +
SCAN_Size(source + "/" + list.at(i).fileName());
qDebug()<<"Count size :"<<QString::number(countSize)<<"bytes";
}
return countSize;
}
else
{
// already in device folder
QString SrcFilePath;
QStringList name_filters, filesListInSrcDir;
name_filters << "*.jpeg"<< //過濾出所有想要蒐集的副檔名稱
"*.JPEG"<<
"*.jpg" <<
"*.JPG" <<
"*.AVI" <<
"*.avi" <<
"*.mp4" <<
"*.MP4";
filesListInSrcDir = srcDir.entryList( name_filters,
QDir::Files | QDir::Readable,
QDir::Name | QDir::Reversed);
name_filters.clear();
unsigned int FileIndex = 0;
unsigned int CopyFilesNum = filesListInSrcDir.count();
while(FileIndex < CopyFilesNum)
{
SrcFilePath.clear();
SrcFilePath = source + "/" + filesListInSrcDir.at(FileIndex);
//countSize = countSize + QFileInfo(SrcFilePath).size();
countSize = countSize + QFileInfo(SrcFilePath).size();
FileIndex++;
}
//qDebug()<<" Files size :"<<QString::number(countSize)<<"bytes";
return countSize;
}
}
留言列表