2010-07-27 62 views
3

我正在编写一个程序,它从服务器下载tar.xz文件并在特定位置提取它们。我正努力寻找在特定位置提取tar.xz文件的方法。我正在使用Qt,所以更多的Qt方法可能会有用,但我并不介意。在C/C++中提取tar.xz

+0

+1让我对以前没有碰过的.xz感到好奇。 – 2010-07-27 12:48:07

回答

1

Qt中不支持档案。您可以查看提供虚拟文件系统支持的KDE库,也可以使用QProcess直接拨打tar。使用-C <dir>(大写字母C)指定要提取到的目录。

[编辑]还有libtar(BSD许可证)。

+0

我会优先考虑不使用QProcess,因为我希望我的应用程序能够在Windows上运行,并且使用QProcess将意味着我将不得不使用tar来装运Windows。也许有人可以给我一个关于liblzma的教程。 – 2010-07-27 13:03:41

+0

该库不允许您读取tar归档文件。如果“.xz”不是拼写错误,那么liblzma将只允许您解压档案。但通常tar档案是用bzip2(.bz2)或gzip(.gz)压缩的。对于这些,你可能需要其他库。 – 2010-07-27 13:06:13

+0

我相信我可以使用zlib来提取焦油,这是否正确。 – 2010-07-27 13:07:54