From 14c912e2aa58838962792a6fdd4e2a62044f6e59 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Fri, 20 Oct 2017 00:18:20 +0200 Subject: [PATCH] Ref T118, utility functions support multiple directories --- src/blackmisc/directoryutils.cpp | 10 ++++++++++ src/blackmisc/directoryutils.h | 3 +++ src/blackmisc/fileutils.cpp | 10 ++++++++++ src/blackmisc/fileutils.h | 3 +++ 4 files changed, 26 insertions(+) diff --git a/src/blackmisc/directoryutils.cpp b/src/blackmisc/directoryutils.cpp index 6794649b6..6623ce812 100644 --- a/src/blackmisc/directoryutils.cpp +++ b/src/blackmisc/directoryutils.cpp @@ -358,6 +358,16 @@ namespace BlackMisc return !dir.isEmpty(); } + QStringList CDirectoryUtils::getExistingUnemptyDirectories(const QStringList &directories) + { + QStringList dirs; + for (const QString &dir : directories) + { + if (existsUnemptyDirectory(dir)) { dirs << dir; } + } + return dirs; + } + QSet CDirectoryUtils::fileNamesToQSet(const QFileInfoList &fileInfoList) { QSet sl; diff --git a/src/blackmisc/directoryutils.h b/src/blackmisc/directoryutils.h index 2f875b07a..b94db3325 100644 --- a/src/blackmisc/directoryutils.h +++ b/src/blackmisc/directoryutils.h @@ -115,6 +115,9 @@ namespace BlackMisc //! Exists directory and does it contains files static bool existsUnemptyDirectory(const QString &testDir); + //! Get the existing directories + static QStringList getExistingUnemptyDirectories(const QStringList &directories); + //! Result of directory comparison struct DirComparison { diff --git a/src/blackmisc/fileutils.cpp b/src/blackmisc/fileutils.cpp index 62b314ab6..b01e0128c 100644 --- a/src/blackmisc/fileutils.cpp +++ b/src/blackmisc/fileutils.cpp @@ -367,6 +367,16 @@ namespace BlackMisc return f.arg(filePath); } + QStringList CFileUtils::fixWindowsUncPaths(const QStringList &filePaths) + { + QStringList fixedPaths; + for (const QString &path : filePaths) + { + fixedPaths << fixWindowsUncPath(path); + } + return fixedPaths; + } + QString CFileUtils::humanReadableFileSize(qint64 size) { // from https://stackoverflow.com/a/30958189/356726 diff --git a/src/blackmisc/fileutils.h b/src/blackmisc/fileutils.h index 6238c6ee7..cb20e2250 100644 --- a/src/blackmisc/fileutils.h +++ b/src/blackmisc/fileutils.h @@ -134,6 +134,9 @@ namespace BlackMisc //! \remark On Windows starting with "/" means an UNC path, on UNIX it varies, see http://unix.stackexchange.com/a/12291/19428 static QString fixWindowsUncPath(const QString &filePath); + //! Fix UNC file paths + static QStringList fixWindowsUncPaths(const QStringList &filePaths); + //! Human readable (GB, MB, ..) file size static QString humanReadableFileSize(qint64 size); };