не подскажите способ сжимать файлы в программе на С++.... например как использовать библиотеку zlib или есть другой более простой способ...
Здравствуйте, Аноним, Вы писали:
А>не подскажите способ сжимать файлы в программе на С++.... например как использовать библиотеку zlib или есть другой более простой способ...
Рекомендую
ZipArchive library — это "оболочка" zlib, которую можно использовать как в MFC-, так и в STL-приложениях.
Здравствуйте, <Аноним>, Вы писали:
А>не подскажите способ сжимать файлы в программе на С++.... например как использовать библиотеку zlib или есть другой более простой способ...
ну, есть более простой способ
которым я все время пользуюсь для таких ситуаций.
Это boost::iostreams.
Компилируем boost:
bjam --build-type=complete --with-iostreams -sZLIB_SOURCE="C:\zlib"
подробней о сборке iostreams:
здесь
подробней о работе с zlib, bzip2, gzip фильтрами:
zlib,
gzip,
bzip2
ну, в принципе интерфейсы все идентичные.
Вот собственно пример:
#include <fstream>
#include <iostream>
#include <boost/iostreams/filtering_streambuf.hpp>
#include <boost/iostreams/copy.hpp>
#include <boost/iostreams/filter/gzip.hpp>
int main()
{
using namespace std;
namespace io = boost::iostreams;
ifstream file("test.txt", ios::in | ios::binary);
ofstream arch("test.zip", ios::out | ios::binary);
io::filtering_streambuf<io::input> in;
in.push(io::gzip_compressor());
in.push(file);
boost::iostreams::copy(in, arch);
}
... << RSDN@Home 1.2.0 alpha 4 rev. 1090>>