diff options
Diffstat (limited to 'depends/util')
-rw-r--r-- | depends/util/include/pathutils.h | 12 | ||||
-rw-r--r-- | depends/util/src/pathutils.cpp | 23 |
2 files changed, 30 insertions, 5 deletions
diff --git a/depends/util/include/pathutils.h b/depends/util/include/pathutils.h index 40bb9e74..cea3a39a 100644 --- a/depends/util/include/pathutils.h +++ b/depends/util/include/pathutils.h @@ -29,7 +29,17 @@ LIBUTIL_EXPORT QString RemoveInvalidFilenameChars(QString string, QChar replaceW LIBUTIL_EXPORT QString DirNameFromString(QString string, QString inDir = "."); -LIBUTIL_EXPORT bool ensurePathExists(QString filenamepath); +/** + * Creates all the folders in a path for the specified path + * last segment of the path is treated as a file name and is ignored! + */ +LIBUTIL_EXPORT bool ensureFilePathExists(QString filenamepath); + +/** + * Creates all the folders in a path for the specified path + * last segment of the path is treated as a folder name and is created! + */ +LIBUTIL_EXPORT bool ensureFolderPathExists(QString filenamepath); LIBUTIL_EXPORT bool copyPath(QString src, QString dst); diff --git a/depends/util/src/pathutils.cpp b/depends/util/src/pathutils.cpp index 5bafdf0f..0836567d 100644 --- a/depends/util/src/pathutils.cpp +++ b/depends/util/src/pathutils.cpp @@ -19,6 +19,7 @@ #include <QDir> #include <QDesktopServices> #include <QUrl> +#include <QDebug> QString PathCombine(QString path1, QString path2) { @@ -68,24 +69,38 @@ QString DirNameFromString(QString string, QString inDir) return dirName; } -bool ensurePathExists(QString filenamepath) +bool ensureFilePathExists(QString filenamepath) { QFileInfo a ( filenamepath ); QDir dir; - return (dir.mkpath ( a.filePath() )); + QString ensuredPath = a.path(); + bool success = dir.mkpath ( ensuredPath ); + qDebug() << "ensureFilePathExists:" << success << ensuredPath << filenamepath; + return success; } +bool ensureFolderPathExists(QString foldernamepath) +{ + QFileInfo a ( foldernamepath ); + QDir dir; + QString ensuredPath = a.filePath(); + bool success = dir.mkpath ( ensuredPath ); + qDebug() << "ensureFolderPathExists:" << success << ensuredPath << foldernamepath; + return success; +} + + bool copyPath(QString src, QString dst) { QDir dir(src); if (!dir.exists()) return false; - if(!ensurePathExists(dst)) + if(!ensureFolderPathExists(dst)) return false; foreach (QString d, dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot)) { - QString inner_src = src+ QDir::separator() + d; + QString inner_src = src + QDir::separator() + d; QString inner_dst = dst + QDir::separator() + d; copyPath(inner_src, inner_dst); } |