c++ - 使用 C++ 复制和存档/压缩文本文件

标签 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 本身中进行复制/存档/压缩。如果可能的话,我也不希望使用特殊的库。

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

最佳答案

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

我想您最接近使用“标准”库的方法是使用 Boost 库。我刚找到 this question并认为 Boost 可能支持 gzip。

关于c++ - 使用 C++ 复制和存档/压缩文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25341992/

相关文章:

algorithm - 文本压缩算法

c - 解码字典中没有的 TIFF LZW 代码

c# - 将固定长度的字符串写到文件上吗?

c++ - OpenGL:设置 glPrint() 相对于屏幕的位置

c++ - C++ 中 "array of unknown bound of T"的外部声明

c++ - 这会彻底清除类对象动态分配的结果吗?

c# - 在 C# 中从磁盘读取短数组的最佳方法?

c++ - 部分模板特化与不匹配的 `int` 和 `size_t` 不编译

python - 在python中获取.tif文件的压缩信息

sql-server - 使用 SQL Server 2012 FileTable 创建目录后资源管理器未更新