Я пишу программу, которая загружает файлы tar.xz с сервера и извлекает их в определенном месте. Я изо всех сил стараюсь найти удаленный файл tar.xz в определенном месте. Я использую Qt, поэтому более Qt-способ сделать это будет полезен, но я не против.Извлечь tar.xz в C/C++
ответ
В Qt нет поддержки архивов. Вы можете либо взглянуть на библиотеку KDE, которая предлагает поддержку виртуальных файловых систем, либо вы можете использовать QProcess
для прямого звонка tar
. Используйте -C <dir>
(верхний регистр C), чтобы указать каталог для извлечения.
[EDIT] Также есть libtar (лицензия BSD).
Я бы предпочел не использовать QProcess, потому что я хотел бы, чтобы мое приложение также запускалось на окнах, а использование QProcess означало бы, что мне пришлось бы отправить tar для окон. Может быть, кто-то может дать мне учебник по liblzma. –
Эта библиотека не позволит вам прочитать tar-архив. Если «.xz» не является опечаткой, тогда liblzma разрешит вам распаковать архив. Но обычно tar-архивы сжимаются с помощью bzip2 (.bz2) или gzip (.gz). Для этого вам, вероятно, нужны другие библиотеки. –
Я считаю, что я могу использовать zlib для извлечения tar, это правильно. –
+1 за то, что заставило меня узнать о .xz, с которым я раньше не сталкивался. –