[gdal-dev] Support for reading GDAL datasets in compressed archives(.gz and .zip)

Even Rouault even.rouault at mines-paris.org
Wed Aug 27 14:28:51 EDT 2008


Konstantin,

Frank is correct.

Let's suppose you have an archive archive.zip with the following content :

"file1"
"dir1/"
"dir1/dir1file1"
"dir1/dir1file2"
"file2"

(After r15231), the behaviour of VSIReadDir and VSIStatL is similar to the 
behaviour of those functions as if archive.zip was a directory with its 
content at its base.

That is to say, you can do VSIReadDir("/vsizip/path/to/your/archive.zip") and 
it will return :
"file1"
"dir1"
"file2"

If you do VSIReadDir("/vsizip/path/to/your/archive.zip/dir1"), it will 
return :
"dir1file1"
"dir1file2"

And yes, the /vsigzip and /vsizip filesystems are read-only. No rename, 
deletion, write etc is possible.

Le Wednesday 27 August 2008 15:43:01 Frank Warmerdam, vous avez écrit :
> Baumann, Konstantin wrote:
> > Hi Even!
> >
> > That sounds cool. Is there also a function for retrieving all available
> > files inside of a ZIP archive?
>
> Kosta,
>
> Programatically this can presumably be accomplished with VSIReadDir()
> (aka CPLReadDir()).
>
> char CPL_DLL **VSIReadDir( const char * );
>
> The VSI filesystem operations should generally work on virtual
> file systems, though in the case of the zip driver I presume all the
> update operations (like VSIRename() or VSIUnlink()) are unimplemented.
>
> Best regards,




More information about the gdal-dev mailing list