如何使用c ++程序解压缩tar.gz文件

时间:2014-07-03 06:54:22

标签: c++

在我的linux程序中,我想将tar.gz文件内容解压缩到特定目录。 C / C ++中是否有任何系统调用或任何C ++类可以从tar.gz文件中提取文件内容?

4 个答案:

答案 0 :(得分:6)

有出色的库 libarchive ,支持使用一致的API访问多种存档格式。您可以按照 these examples 了解如何使用它。

如果您使用的是Ubuntu,则可以使用命令sudo apt-get install libarchive-dev轻松安装此库。在其他平台上,您可能需要下载源代码并自行编译此库。

使用libarchive与使用system()调用的一个优点是不依赖于系统实用程序,而且它也应该更快,因为它不会分叉。

答案 1 :(得分:0)

如果您加<cstdlib>,可致电:

system("your tar or gz command");

答案 2 :(得分:0)

您可以使用libtar等几个库。

或者你可以使用你已经提到过的系统调用:

system("tar -zxf /your/file.tar.gz")

答案 3 :(得分:0)

http://www.cplusplus.com/reference/cstdlib/system/

你可以这样做:

   system("tar -zxvf yourfile");

您也可以看到这一点: