我的任务很简单。每当我运行我的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
本身进行复制/存档/压缩。如果可能的话,我也不想使用特殊的库。
无论如何只使用标准库元素来做到这一点?
答案 0 :(得分:2)
没有用于执行此操作的C ++标准库元素。您必须使用特殊库,使用外部应用程序或开发自己的文本压缩器。
我猜你最接近使用"标准"库是使用Boost库。我刚刚找到this question并认为Boost可能支持gzip。
答案 1 :(得分:1)
使用libtar,一个tar文件操纵器。