From: "Mikkel Kamstrup Erlandsen", Date: 04/08/2009 00:22, Wrote:
> On Mon, 2009-08-03 at 07:58 -0400, Freddie Unpenstein wrote:
>> Archiving formats would be better supported by GVFS, wouldn't they...?
>> Treating an archive as a virtual directory.
> I'm pretty confident that in 98%[1] of the use cases the developer
> needs to know that this is really about an on-disk file and not a
> directory. Bear in mind that I would need to do a
> g_file_enumerate_children() and open streams on nested URIs I get from
> the GFileInfos returned by the GFileEnumerator.
I understand this... I don't know the details, but I had a suspicion it would
be a pain. However, it may be possible to abstract some of that away to return
a simple list of names, or the stream corresponding to a given name...?
>> 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).
> Remember we can't build anything around RAR format due to incompatible
> licensing, except of the file-roller way (spawning external commands).
It was more an example than anything... I have heard there are licencing
issues with RAR... It's the fact that the compression can be on either side of
the archive structure that I thought worth bringing up... Same as for
tar/(g|b)zip... You can quite conceivably have a tar archive of gzipped files.
> libarchive can be easily used as a "filter" between two streams,
> transparently decoding incoming data. This should be really implemented
> as an extension, we don't want to have another dependency in glib.
That sounds fair enough... A quick glance over at libarchive, and it seems to
do pretty much everything required (can't tell if it handles concatenated
gzipped files). But embracing it looks like duplicating a fair chunk of
functionality. I wonder if it would be better to do it over in a more
GLib/GIO-esque style than trying to embrace it. GIO streams can completely
replace the I/O layers at both ends of the libarchive engine, while compression
and at least some of the archive format handling is done by external libraries.
It really doesn't look like there's much left for libarchive to do, apart from
format detection, at least as far as I could tell from my quick look over the
documentation.
Anyhow... Wish I'd known about libarchive a while back. I really have to
practice my Google technique... :(
I do, though, wish there was a compression library that was able to snapshot an
in-progress compression, allowing you to "rewind" to a saved state and continue
from there.
Fredderic
------------------------------------------------------------
Toupee
Find toupees to help you look your best! Click now!
http://tagline.excite.com/fc/FgElN1g05cL012R3SRh8CWFbYT1xuTXgkfM2tibgFh5Lo8J77cLU8SCTbBO/
_______________________________________________
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list