Черз Qprocess вызвать 7za.exe и передать ей строку с параметрами

148
11 января 2019, 15:40
void Widget::on_pushButtonCmd_clicked()
 {
    QProcess *cmd=new QProcess(this);
    QString programm = "C:\\Windows\\System32\\cmd.exe";
    QStringList arguments;
   arguments <<"C:\\7za.exe"
          <<"-u"
          <<"-tzip"
          <<"-x!*.zip"
          <<"D:\\TESTZIP\\backup.zip"
          <<"D:\\TESTZIP\\1.txt";
cmd->start(programm);
cmd->waitForStarted();
cmd->setArguments(arguments);
}

Подскажите пожалуйста. Через Qprocess вызываю консоль. В консоли вызываю консольную версию 7za.exe с ключами. Но программа висит и архив не создается.

Answer 1

Код:

QString programm = "C:\\7za.exe";  // Путь правильный?
QStringList arguments;
arguments << "u"  // !!!
          << "-tzip"
          << "-x!*.zip"
          << "C:\\New/backup.zip"
          << "C:\\New/1.txt";
QProcess *cmd = new QProcess(this);
cmd->start(programm, arguments);
  1. Почему бы не запустить архиватор, передав путь в QProcess?
  2. Ключ для архиватора пишется без дефиса "u" (см. документацию)
READ ALSO
Утечка памяти в каком-то месте самодельного вектора

Утечка памяти в каком-то месте самодельного вектора

Сделал простенький вектор, все мои тесты проходит, но окаянное онлайн-тестирование кидает в меня ошибкой "Memory leak detected"Помогите найти места,...

145
Вывод русского тексты с помощью SDL_ttf

Вывод русского тексты с помощью SDL_ttf

С латиницей проблем нет, все работает как надо, но вместо кириллицы совершенно другие символыВот код, если это поможет

193
В чем ошибка? Можно ли вообще использовать такую структуру кода?

В чем ошибка? Можно ли вообще использовать такую структуру кода?

Самостоятельно обучаюсь программированиюСейчас пытаюсь решить задачу, найденную в интернете

201
создание dll в codeblocks

создание dll в codeblocks

Всем приветСоздаю dll в codeblocks, имею структуру проекта main

188