Moved emptyDirectory() into dbcorelib

This commit is contained in:
Daniel Brunner
2018-10-14 12:11:41 +02:00
parent 7c9c8c8f2d
commit 73ff038e2c
2 changed files with 3 additions and 41 deletions

View File

@@ -9,4 +9,4 @@ set(SOURCES
add_executable(picsync ${HEADERS} ${SOURCES})
target_link_libraries(picsync Qt5::Core)
target_link_libraries(picsync Qt5::Core dbcorelib)

View File

@@ -11,11 +11,12 @@
#include <QJsonDocument>
#include <QCommandLineParser>
#include <QCommandLineOption>
#include <QDirIterator>
#include <QStringBuilder>
#include <QUuid>
#include <QtGlobal>
#include "utils/fileutils.h"
bool writeBitmap(const QString &filename, const QByteArray &content)
{
qDebug() << "writeBitmap" << filename;
@@ -131,45 +132,6 @@ bool readBitmap(const QString &filename, QByteArray &content)
return true;
}
bool emptyDirectory(const QString &path)
{
QDir dir(path);
if(!dir.exists())
{
qWarning() << "tried to empty non-existant dir" << path;
return true;
}
bool success = true;
// not empty -- we must empty it first
QDirIterator di(dir.absolutePath(), QDir::AllEntries | QDir::Hidden | QDir::System | QDir::NoDotAndDotDot);
while (di.hasNext()) {
di.next();
const QFileInfo& fi = di.fileInfo();
const QString &filePath = di.filePath();
bool ok;
if (fi.isDir() && !fi.isSymLink()) {
ok = QDir(filePath).removeRecursively(); // recursive
} else {
ok = QFile::remove(filePath);
if (!ok) { // Read-only files prevent directory deletion on Windows, retry with Write permission.
const QFile::Permissions permissions = QFile::permissions(filePath);
if (!(permissions & QFile::WriteUser))
ok = QFile::setPermissions(filePath, permissions | QFile::WriteUser)
&& QFile::remove(filePath);
}
}
if (!ok)
success = false;
}
if(!success)
qWarning() << "could not empty" << path;
return success;
}
bool spread(const QString &sourcePath, const QString &targetPath)
{
qDebug() << "spread" << sourcePath << targetPath;