From 080b6330662d84062e435a29216e6f22cb84d1f3 Mon Sep 17 00:00:00 2001 From: ZhangTingan Date: Mon, 25 May 2026 09:54:53 +0800 Subject: [PATCH] fix: use preservePaths in batch extraction to keep correct directory structure fix incorrect params Log: fix bug Bug: https://pms.uniontech.com/bug-view-362685.html --- 3rdparty/interface/archiveinterface/cliinterface.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/3rdparty/interface/archiveinterface/cliinterface.cpp b/3rdparty/interface/archiveinterface/cliinterface.cpp index 4d56c1f5..66787f07 100644 --- a/3rdparty/interface/archiveinterface/cliinterface.cpp +++ b/3rdparty/interface/archiveinterface/cliinterface.cpp @@ -1355,12 +1355,12 @@ bool CliInterface::handleLongNameExtract(const QList &files) qInfo() << "handleLongNameExtract: batch extract files:" << allFileList.count(); if (!allFileList.isEmpty()) { - pProcess->setWorkingDirectory(options.strTargetPath); + QDir::setCurrent(options.strTargetPath); pProcess->setPtyChannels(KPtyProcess::StdinChannel); pProcess->setOutputChannelMode(KProcess::MergedChannels); pProcess->setNextOpenMode(QIODevice::ReadWrite | QIODevice::Unbuffered | QIODevice::Text); pProcess->setProgram(m_cliProps->property("extractProgram").toString(), - m_cliProps->extractArgs(absoluteDestinationPath, allFileList, false, password)); + m_cliProps->extractArgs(absoluteDestinationPath, allFileList, true, password)); pProcess->start(); if (password.isEmpty()) { @@ -1390,7 +1390,7 @@ bool CliInterface::handleLongNameExtract(const QList &files) pProcess->setOutputChannelMode(KProcess::MergedChannels); pProcess->setNextOpenMode(QIODevice::ReadWrite | QIODevice::Unbuffered | QIODevice::Text); pProcess->setProgram(m_cliProps->property("extractProgram").toString(), - m_cliProps->extractArgs(absoluteDestinationPath, allFileList, false, password)); + m_cliProps->extractArgs(absoluteDestinationPath, allFileList, true, password)); pProcess->start(); pProcess->waitForFinished(-1);