2010-07-27 2 views
3

Я пишу программу, которая загружает файлы tar.xz с сервера и извлекает их в определенном месте. Я изо всех сил стараюсь найти удаленный файл tar.xz в определенном месте. Я использую Qt, поэтому более Qt-способ сделать это будет полезен, но я не против.Извлечь tar.xz в C/C++

+0

+1 за то, что заставило меня узнать о .xz, с которым я раньше не сталкивался. –

ответ

1

В Qt нет поддержки архивов. Вы можете либо взглянуть на библиотеку KDE, которая предлагает поддержку виртуальных файловых систем, либо вы можете использовать QProcess для прямого звонка tar. Используйте -C <dir> (верхний регистр C), чтобы указать каталог для извлечения.

[EDIT] Также есть libtar (лицензия BSD).

+0

Я бы предпочел не использовать QProcess, потому что я хотел бы, чтобы мое приложение также запускалось на окнах, а использование QProcess означало бы, что мне пришлось бы отправить tar для окон. Может быть, кто-то может дать мне учебник по liblzma. –

+0

Эта библиотека не позволит вам прочитать tar-архив. Если «.xz» не является опечаткой, тогда liblzma разрешит вам распаковать архив. Но обычно tar-архивы сжимаются с помощью bzip2 (.bz2) или gzip (.gz). Для этого вам, вероятно, нужны другие библиотеки. –

+0

Я считаю, что я могу использовать zlib для извлечения tar, это правильно. –