From 318a677e8ff2c681a18db2503be5fcafe0e52218 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Wed, 29 May 2024 12:29:48 +0800 Subject: [PATCH] Avoid creating redundant temporary file list PR #20863. --- src/webui/api/appcontroller.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/webui/api/appcontroller.cpp b/src/webui/api/appcontroller.cpp index 7a6fa4547..db51b4cd3 100644 --- a/src/webui/api/appcontroller.cpp +++ b/src/webui/api/appcontroller.cpp @@ -37,6 +37,7 @@ #include #include #include +#include #include #include #include @@ -1159,8 +1160,11 @@ void AppController::getDirectoryContentAction() throw APIError(APIErrorType::BadParams, tr("Invalid mode, allowed values: %1").arg(u"all, dirs, files"_s)); }; - const QStringList dirs = dir.entryList(QDir::NoDotAndDotDot | parseDirectoryContentMode(visibility)); - setResult(QJsonArray::fromStringList(dirs)); + QJsonArray ret; + QDirIterator it {dirPath, (QDir::NoDotAndDotDot | parseDirectoryContentMode(visibility))}; + while (it.hasNext()) + ret.append(it.next()); + setResult(ret); } void AppController::networkInterfaceListAction()