Boost logo

Boost Users :

From: François Duranleau (duranlef_at_[hidden])
Date: 2007-08-09 11:38:58


On Thu, 9 Aug 2007, Robert Caldecott wrote:

> I have been experimenting with the boost::iostreams to create a gzip file, for
> example the following works fine:
>
> using namespace boost::iostreams;
> filtering_ostream out;
> out.push(gzip_compressor());
> out.push(file_sink("test.gz", std::ios::binary));
> out << "This is a gz file\n";
>
> This will create a gz file containing a single compressed file (called 'test').
> I can change the name of this internal file using a gzip_params struct and all
> is well.
>
> However, I want to create a single gzip file that contains multiple compressed
> files, each with a different filename. Does anyone know how to achieve this?

I guess that when you uncompress the file (e.g. with gunzip), you want to
get all those named files in, well, different files? As far as I know, the
gzip format doesn't allow that (I could be wrong), hence the gzip'ed tar
files we often see. I can't think of any simple portable solution aside
from creating each file regularly and then calling

system("tar zcf filename.tar.gz ...");

and finally remove the uncompressed files. That would require that 'tar'
is available the system your software is run on.

Anyone else has any better ideas?

-- 
François Duranleau
LIGUM, Université de Montréal

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net