From 522cb469b71ddb1e237b69e24afc45ff668ae769 Mon Sep 17 00:00:00 2001 From: Syping Date: Fri, 2 Apr 2021 03:05:54 +0200 Subject: [PATCH] ProfileLoader check if regular file --- ProfileLoader.cpp | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/ProfileLoader.cpp b/ProfileLoader.cpp index cbcbe04..d11e60a 100644 --- a/ProfileLoader.cpp +++ b/ProfileLoader.cpp @@ -30,6 +30,7 @@ #include #else #include "sys/types.h" +#include "sys/stat.h" #include "dirent.h" #endif @@ -47,7 +48,7 @@ void ProfileLoader::run() #ifdef Q_OS_WIN QDir dir(profileFolder); - const QStringList files = dir.entryList(); + const QStringList files = dir.entryList(QDir::Files); for (const QString &fileName : files) { if (fileName.startsWith("SGTA5") && !fileName.endsWith(".bak")) { savegameFiles << fileName; @@ -63,13 +64,18 @@ void ProfileLoader::run() struct dirent *dp; while ((dp = readdir(dirp)) != 0) { const QString fileName = QString::fromUtf8(dp->d_name); - if (fileName.startsWith("SGTA5") && !fileName.endsWith(".bak")) { - savegameFiles << fileName; - maximumV++; - } - if (fileName.startsWith("PGTA5") && !fileName.endsWith(".bak")) { - snapmaticPics << fileName; - maximumV++; + const QString filePath = profileFolder % "/" % fileName; + struct stat fileStat; + stat(filePath.toUtf8().constData(), &fileStat); + if (S_ISREG(fileStat.st_mode) != 0) { + if (fileName.startsWith("SGTA5") && !fileName.endsWith(".bak")) { + savegameFiles << fileName; + maximumV++; + } + if (fileName.startsWith("PGTA5") && !fileName.endsWith(".bak")) { + snapmaticPics << fileName; + maximumV++; + } } } closedir(dirp);