Russian Qt Forum

Qt => Общие вопросы => Тема начата: SektorCT от Сентябрь 14, 2022, 15:33



Название: Распаковка архива через QProcess и чтение полученного файла
Отправлено: SektorCT от Сентябрь 14, 2022, 15:33
Всем привет.
Имеется очень большое колличество архивов с файлами формата svg.
Но возник вопрос, как открывать архив, получать и читать файл и так до конца?
И возможно ли при таком открытии распакованный файл может как то в tmp держать(чтобы его прочитать) а после он удалится и так к следующему/?
Подскажите если кто с подобным сталкивался где у меня в примере кода не точности?

Код:
    QProcess process;
    QString command;
    QStringList args;
    command = "\"gzip -d fsensor_dump_2022-06-01T01.csv.gz\"";
    args << "../";
    process.start(command, args, QIODevice::ReadOnly);
    process.waitForFinished();
    QString stdOut = process.readAllStandardOutput();
    QString stdError = process.readAllStandardError();

Спасибо отозвавшымся.


Название: Re: Распаковка архива через QProcess и чтение полученного файла
Отправлено: kambala от Сентябрь 14, 2022, 17:54
как минимум, -d fsensor_dump_2022-06-01T01.csv.gz должно идти в args, обрамлять в \" ничего не надо.

сделать как ты хочешь можно. для этого создай QTemporaryDir, в нее извлекай свои файлы в цикле, удалять можно или каждый файл после его обработки или просто удалить созданную временную директорию после обработки всех файлов.


Название: Re: Распаковка архива через QProcess и чтение полученного файла
Отправлено: Day от Сентябрь 15, 2022, 16:26
Для rar я делаю так
Код:
     char com[400];
      sprintf(com, "rar.exe x -idcpdq -y UP00\\%s UP00/", namF[1]);
      int r = QProcess::execute(com);
Для gzip смотри его флаги