Russian Qt Forum
Январь 30, 2023, 23:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Распаковка архива через QProcess и чтение полученного файла  (Прочитано 1004 раз)
SektorCT
Самовар
**
Offline Offline

Сообщений: 113


Просмотр профиля
« : Сентябрь 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();

Спасибо отозвавшымся.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4550



Просмотр профиля WWW
« Ответ #1 : Сентябрь 14, 2022, 17:54 »

как минимум, -d fsensor_dump_2022-06-01T01.csv.gz должно идти в args, обрамлять в \" ничего не надо.

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

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Day
Частый гость
***
Offline Offline

Сообщений: 290


Просмотр профиля
« Ответ #2 : Сентябрь 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 смотри его флаги
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 22.