summaryrefslogtreecommitdiffstats
path: root/libutil
diff options
context:
space:
mode:
Diffstat (limited to 'libutil')
-rw-r--r--libutil/include/pathutils.h3
-rw-r--r--libutil/src/pathutils.cpp19
2 files changed, 22 insertions, 0 deletions
diff --git a/libutil/include/pathutils.h b/libutil/include/pathutils.h
index c9a52ced..d4f41da3 100644
--- a/libutil/include/pathutils.h
+++ b/libutil/include/pathutils.h
@@ -31,4 +31,7 @@ LIBUTIL_EXPORT QString DirNameFromString(QString string, QString inDir = ".");
LIBUTIL_EXPORT bool ensurePathExists(QString filenamepath);
+LIBUTIL_EXPORT bool copyPath(QString src, QString dst);
+
+
#endif // PATHUTILS_H
diff --git a/libutil/src/pathutils.cpp b/libutil/src/pathutils.cpp
index 083fe98d..97287840 100644
--- a/libutil/src/pathutils.cpp
+++ b/libutil/src/pathutils.cpp
@@ -73,3 +73,22 @@ bool ensurePathExists(QString filenamepath)
return (dir.mkpath ( a.path() ));
}
+bool copyPath(QString src, QString dst)
+{
+ QDir dir(src);
+ if (!dir.exists())
+ return false;
+
+ foreach (QString d, dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot))
+ {
+ QString dst_path = dst + QDir::separator() + d;
+ dir.mkpath(dst_path);
+ copyPath(src+ QDir::separator() + d, dst_path);
+ }
+
+ foreach (QString f, dir.entryList(QDir::Files))
+ {
+ QFile::copy(src + QDir::separator() + f, dst + QDir::separator() + f);
+ }
+ return true;
+}