summaryrefslogtreecommitdiffstats
path: root/helper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'helper.cpp')
-rw-r--r--helper.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/helper.cpp b/helper.cpp
index baaacbb..508e482 100644
--- a/helper.cpp
+++ b/helper.cpp
@@ -9,6 +9,7 @@
#include <QByteArray>
#include <QFileInfo>
#include <QFile>
+#include <QSettings>
#define CRYPTOPP_ENABLE_NAMESPACE_WEAK 1
#include <md5.h>
@@ -75,5 +76,42 @@ namespace Helper {
}
return retval;
}
+
+ bool moveToArchive(const QString &path, const QString &md5){
+ QFileInfo info(path);
+ if(!info.exists()){
+ return false;
+ }
+ QFileInfo destFile = QFileInfo(createArchivePath(path, md5));
+ if(destFile.exists()){
+ destFile = QFileInfo(createArchivePath(path, md5, true));
+ if(destFile.exists()){
+ return false;
+ }
+ }
+ return QFile::rename(path, destFile.absoluteFilePath());
+ }
+
+ bool removeFromArchive(const QString &fileName, const QString &md5){
+ QString file = createArchivePath(fileName, md5);
+ QFileInfo info(file);
+ if(!info.exists()){
+ return false;
+ }
+ return QFile::remove(file);
+ }
+
+ const QString createArchivePath(const QString &path, const QString &md5, bool withMd5){
+ QSettings s;
+ QString archiveDir = s.value("paths/archivedir").toString();
+ QFileInfo info(path);
+ QString retval;
+ if(withMd5){
+ retval = QString("%1/%2/%3/%4_%5.%6").arg(archiveDir).arg(md5[0]).arg(md5[1]).arg(info.completeBaseName()).arg(md5).arg(info.suffix());
+ }else{
+ retval = QString("%1/%2/%3/%4").arg(archiveDir).arg(md5[0]).arg(md5[1]).arg(info.fileName());
+ }
+ return retval;
+ }
}