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

Copy and archive/compress text files using C++

本文关键字:压缩 文本 文件 c++ 复制 使用      更新时间:2023-10-16

我的任务很简单。每当我运行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本身。如果可能的话,我也不喜欢使用特殊的库。

无论如何都要用标准库元素来做这个?

没有c++标准库元素可以做到这一点。您必须使用特殊的库,使用外部应用程序或开发自己的文本压缩器。

我猜你最接近使用"标准"库是使用Boost库。我刚发现这个问题,认为Boost可能支持gzip。

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