void NarutoMove::extracting(QString archiveFrom,QString dirTo){ QProcess rar; rar.start("Rar.exe",QStringList()<<"vb"<<archiveFrom); //содержимое архива if (!rar.waitForStarted()) logTextEdit->append("not waitForStarted"); if (!rar.waitForFinished()) logTextEdit->append("not waitForFinished"); QRegExp reg(".+\\d+\\.\\w{3}");//blablabla\01.jpg QStringList filesToExtract; QString str; filesToExtract<<"e"<<"-o+ -idcdp"<<archiveFrom;//e - extract, -o+ - перезапись, -idcpd - убираем лишний вывод while(rar.canReadLine())//добавляем файлы для извлечения { str=rar.readLine(); if(reg.indexIn(str)!=-1) filesToExtract.append("-n"+str);//-n для добавления файла на выполнение. нужно больше 1 файла } filesToExtract<<dirTo; logTextEdit->append(filesToExtract.join(" ")); rar.start("Rar.exe",filesToExtract); if (!rar.waitForStarted()) logTextEdit->append("not waitForStarted"); if (!rar.waitForFinished()) logTextEdit->append("not waitForFinished"); QString result = QString(rar.readAll()); logTextEdit->append(result);}