From f10fcafd17e40bb2be25ec486c4fb84de23765c0 Mon Sep 17 00:00:00 2001 From: liuzhangjian Date: Wed, 26 Jul 2023 10:12:54 +0800 Subject: [PATCH] fix: [thumbnail] The thumbnails save failed The directory for saving the thumbnail does not exist, causing the saving to fail Log: fix bug Bug: https://pms.uniontech.com/bug-view-211721.html --- src/dfm-base/utils/thumbnail/thumbnailhelper.cpp | 11 ++++++----- src/dfm-base/utils/thumbnail/thumbnailhelper.h | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/dfm-base/utils/thumbnail/thumbnailhelper.cpp b/src/dfm-base/utils/thumbnail/thumbnailhelper.cpp index c048709813..7eac9414c3 100644 --- a/src/dfm-base/utils/thumbnail/thumbnailhelper.cpp +++ b/src/dfm-base/utils/thumbnail/thumbnailhelper.cpp @@ -16,6 +16,7 @@ #include #include +#include #include @@ -114,11 +115,11 @@ bool ThumbnailHelper::checkMimeTypeSupport(const QMimeType &mime) return false; } -void ThumbnailHelper::makeDir(const QString &path) +void ThumbnailHelper::makePath(const QString &path) { - struct stat info; - if (stat(path.toLocal8Bit().data(), &info) != 0) - mkdir(path.toLocal8Bit().data(), 0755); + QDir dir(path); + if (!dir.exists()) + dir.mkpath("."); } QString ThumbnailHelper::saveThumbnail(const QUrl &url, const QImage &img, ThumbnailSize size) @@ -140,7 +141,7 @@ QString ThumbnailHelper::saveThumbnail(const QUrl &url, const QImage &img, Thumb const qint64 fileModify = info->timeOf(TimeInfoType::kLastModifiedSecond).toLongLong(); tmpImg.setText(QT_STRINGIFY(Thumb::MTime), QString::number(fileModify)); - makeDir(thumbnailPath); + makePath(thumbnailPath); if (!tmpImg.save(thumbnailFilePath, Q_NULLPTR, 50)) { qWarning() << "thumbnail: save failed." << fileUrl; return ""; diff --git a/src/dfm-base/utils/thumbnail/thumbnailhelper.h b/src/dfm-base/utils/thumbnail/thumbnailhelper.h index 6df08b2193..25e84fcf57 100644 --- a/src/dfm-base/utils/thumbnail/thumbnailhelper.h +++ b/src/dfm-base/utils/thumbnail/thumbnailhelper.h @@ -35,7 +35,7 @@ class ThumbnailHelper private: explicit ThumbnailHelper(); bool checkMimeTypeSupport(const QMimeType &mime); - void makeDir(const QString &path); + void makePath(const QString &path); private: DMimeDatabase mimeDatabase;