diff --git a/ark/plugins/libarchive/libarchivehandler.cpp b/ark/plugins/libarchive/libarchivehandler.cpp index 80ccfbea..0d1849ec 100644 --- a/ark/plugins/libarchive/libarchivehandler.cpp +++ b/ark/plugins/libarchive/libarchivehandler.cpp @@ -161,7 +161,7 @@ bool LibArchiveInterface::addFiles(const QStringList &files, const CompressionOp { const QString globalWorkDir = options.value(QLatin1String("GlobalWorkDir")).toString(); if (!globalWorkDir.isEmpty()) { - kDebug() << "GlobalWorkDir is set, changing dir to " << globalWorkDir; + kDebug() << "GlobalWorkDir is set, changing dir to" << globalWorkDir; QDir::setCurrent(globalWorkDir); } @@ -181,6 +181,12 @@ bool LibArchiveInterface::addFiles(const QStringList &files, const CompressionOp return false; } + if (!globalWorkDir.isEmpty()) { + const QString tempprefix(QDir::cleanPath(globalWorkDir) + QDir::separator() + QLatin1String("ark-")); + kDebug() << "GlobalWorkDir is set, setting temporary prefix to" << tempprefix; + karchive.setTempPrefix(tempprefix); + } + const QList oldEntries = karchive.list(); const QString strip(QDir::cleanPath(globalWorkDir) + QDir::separator()); connect(&karchive, SIGNAL(progress(qreal)), this, SLOT(emitProgress(qreal)));