From: Steve Fr-23;cinaux, Date: 03/08/2009 19:38, Wrote:
> Bastien Nocera wrote:
> > I could think of at least 5 types of compressions that would be useful
> > to have without having to use a command-line tool to decompress:
> > - gzip for anything and everything that can come from a web server (in
> > my case, iTunes Music Store playlist parsing, or more widely, GOffice
> > file formats)
> > - zip for OpenOffice.org documents and Comic Books (evince)
> > - 7zip/LZMA/Xz formats for Comic Books
> > - Rar for the same as above
> Aren't there two classes of file types there ? Compression vs Archiving
Archiving formats would be better supported by GVFS, wouldn't they...?
Treating an archive as a virtual directory.
However, zip has a few compression formats, rar compression can be applied both
before and after bundling of the files (a rar "solid archive" is similar to a
tar.gz archive). There may be some value to supporting those compression
formats even without supporting the entire archive format. The compression is
pretty much the hard part of handling these archives.
Going the extra step further, though, the next obvious idea would be to do the
same thing that gunzip does when you concatenate together a series of gzipped
files - it simply returns the uncompressed content of each file sequentially.
I guess, though, you still need to understand the archive format, for at least
some of those formats. So I suppose some kind of archive handler would be
needed to pick out the individual streams for concatenation. Given that,
reading a zip file as a compressed stream could instantiate a concatenation
object that sets up the appropriate archive handler and just iterates over the
available files, joining the uncompressed data of each individual decompression
stream together as a single continuous stream. Which would give you the option
to set up the archive handler yourself and extract the one(s) you want
individually. This would be a boon even for gzipped files, giving you the
option to extract concatenated compressed streams individually rather than as a
solid indistinguishable stream.
The ability to manipulate archives as well as simple compression would be
fantastic. I did at one stage need to apply a "filter" to the files matching a
certain mask within a tgz archive. With support like that, I could uncompress
the tgz, split the tar, pass through files I'm not interested in, apply the
filtering to the ones I am, and then repackage and re-compress the lot on the
way out, without having to mess around with spawning external commands and
correctly handling the myriad of things that can go wrong.
Fredderic
------------------------------------------------------------
Worried about your move? Relocation Services can do the work for you. Click
Here!
Relocation Services
http://tagline.excite.com/fc/FgElN1gwiSlWpkKFMLvDoO0n7NxKyoB5FLHN0tUNYVebcYZiatk3W9RdaIg/
_______________________________________________
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list