【发布时间】:2013-07-01 05:48:45
【问题描述】:
我正在尝试使用 boost 库 (gzip) 压缩文件。 这是一个简单的任务:假设我有文件 data.xml,我需要将它压缩为 data.xml.gz。我什至可以使用默认压缩值,没关系。
我尝试在 google 和 BOOST 页面中查找,但没有成功。
我有以下几点:
bool SyncFrequencyHistory::frequencyHistoryCompressFile(void)
{
printf("\r\n===== ACTION: frequencyHistoryCompressFile =====\r\n");
std::ifstream inStream(FREQUENCY_HISTORY_FILE, std::ios_base::in);
std::ofstream outStream(FREQUENCY_HISTORY_FILE_GZIP, std::ios_base::out);
boost::iostreams::filtering_streambuf<boost::iostreams::output> out;
out.push(boost::iostreams::gzip_compressor());
out.push(outStream);
boost::iostreams::copy(in, out);
return true;
}
FREQUENCY_HISTORY_FILE 包含 XML 文件的完整位置
FREQUENCY_HISTORY_FILE_GZIP 包含 XML.GZ 文件的完整位置
我知道几乎所有的代码都是错误的,但我不知道谁写的正确。
【问题讨论】:
-
将 gzip 作为外部命令运行不是一个选项吗?
-
运行这个会发生什么?
标签: boost compression gzip iostream