diff --git a/utils/rbutilqt/base/utils.cpp b/utils/rbutilqt/base/utils.cpp index 92e09de569..566782205d 100644 --- a/utils/rbutilqt/base/utils.cpp +++ b/utils/rbutilqt/base/utils.cpp @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -963,13 +964,10 @@ bool Utils::ejectDevice(const QString &device) qint64 Utils::recursiveFolderSize(QString path) { qint64 size = 0; - QList items = QDir(path).entryInfoList(QDir::Files | QDir::NoDotAndDotDot); - for (const auto &item: std::as_const(items)) { - size += item.size(); - } - QList folders = QDir(path).entryList(QDir::Dirs | QDir::NoDotAndDotDot); - for (auto const& folder: std::as_const(folders)) { - size += recursiveFolderSize(path + "/" + folder); + QDirIterator it(path, QDir::Files | QDir::NoDotAndDotDot, QDirIterator::Subdirectories); + while (it.hasNext()) { + it.next(); + size += it.fileInfo().size(); } return size; }