使用C ++复制和归档/压缩文本文件

时间:2014-08-16 17:08:48

标签: c++ compression filestream archive

我的任务很简单。每当我运行我的C ++程序时

$ ./myprogram

我想在CWD中搜索所有源(* .cpp)文件,然后在目录./output中复制它们,然后创建某种压缩存档文件。我不关心什么类型的压缩或存档格式,只需将它们放在一个文件中就可以了。

目前,我使用以下功能:

int archiveFiles(string destinationFile) {
    int ret;    
    ret = system( ("tar -cf " + destinationFile + " ./*.cpp").c_str() );
    ret = system( ("gzip " + destinationFile).c_str() );
    return ret;
}

通过电话archiveFiles("output");

但我希望来使用系统调用。我宁愿在myprogram本身进行复制/存档/压缩。如果可能的话,我也不想使用特殊的库。

无论如何只使用标准库元素来做到这一点?

2 个答案:

答案 0 :(得分:2)

没有用于执行此操作的C ++标准库元素。您必须使用特殊库,使用外部应用程序或开发自己的文本压缩器。

我猜你最接近使用"标准"库是使用Boost库。我刚刚找到this question并认为Boost可能支持gzip。

答案 1 :(得分:1)

使用libtar,一个tar文件操纵器。