JUCE
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
Classes | Public Member Functions | List of all members
ZipFile Class Reference

Decodes a ZIP file from a stream. More...

Classes

class  Builder
 Used to create a new zip file. More...
 
struct  ZipEntry
 Contains information about one of the entries in a ZipFile. More...
 

Public Member Functions

 ZipFile (const File &file)
 Creates a ZipFile based for a file.
 
 ZipFile (InputStream *inputStream, bool deleteStreamWhenDestroyed)
 Creates a ZipFile for a given stream.
 
 ZipFile (InputStream &inputStream)
 Creates a ZipFile for a given stream.
 
 ZipFile (InputSource *inputSource)
 Creates a ZipFile for an input source.
 
 ~ZipFile ()
 Destructor.
 
int getNumEntries () const noexcept
 Returns the number of items in the zip file.
 
const ZipEntrygetEntry (int index) const noexcept
 Returns a structure that describes one of the entries in the zip file.
 
int getIndexOfFileName (const String &fileName) const noexcept
 Returns the index of the first entry with a given filename.
 
const ZipEntrygetEntry (const String &fileName) const noexcept
 Returns a structure that describes one of the entries in the zip file.
 
void sortEntriesByFilename ()
 Sorts the list of entries, based on the filename.
 
InputStreamcreateStreamForEntry (int index)
 Creates a stream that can read from one of the zip file's entries.
 
InputStreamcreateStreamForEntry (const ZipEntry &entry)
 Creates a stream that can read from one of the zip file's entries.
 
Result uncompressTo (const File &targetDirectory, bool shouldOverwriteFiles=true)
 Uncompresses all of the files in the zip file.
 
Result uncompressEntry (int index, const File &targetDirectory, bool shouldOverwriteFiles=true)
 Uncompresses one of the entries from the zip file.
 

Detailed Description

Decodes a ZIP file from a stream.

This can enumerate the items in a ZIP file and can create suitable stream objects to read each one.

Constructor & Destructor Documentation

ZipFile::ZipFile ( const File file)
explicit

Creates a ZipFile based for a file.

ZipFile::ZipFile ( InputStream inputStream,
bool  deleteStreamWhenDestroyed 
)

Creates a ZipFile for a given stream.

Parameters
inputStreamthe stream to read from
deleteStreamWhenDestroyedif set to true, the object passed-in will be deleted when this ZipFile object is deleted
ZipFile::ZipFile ( InputStream inputStream)
explicit

Creates a ZipFile for a given stream.

The stream will not be owned or deleted by this class - if you want the ZipFile to manage the stream's lifetime, use the other constructor.

ZipFile::ZipFile ( InputSource inputSource)
explicit

Creates a ZipFile for an input source.

The inputSource object will be owned by the zip file, which will delete it later when not needed.

ZipFile::~ZipFile ( )

Destructor.

Member Function Documentation

int ZipFile::getNumEntries ( ) const
noexcept

Returns the number of items in the zip file.

const ZipEntry* ZipFile::getEntry ( int  index) const
noexcept

Returns a structure that describes one of the entries in the zip file.

This may return zero if the index is out of range.

See Also
ZipFile::ZipEntry
int ZipFile::getIndexOfFileName ( const String fileName) const
noexcept

Returns the index of the first entry with a given filename.

This uses a case-sensitive comparison to look for a filename in the list of entries. It might return -1 if no match is found.

See Also
ZipFile::ZipEntry
const ZipEntry* ZipFile::getEntry ( const String fileName) const
noexcept

Returns a structure that describes one of the entries in the zip file.

This uses a case-sensitive comparison to look for a filename in the list of entries. It might return 0 if no match is found.

See Also
ZipFile::ZipEntry
void ZipFile::sortEntriesByFilename ( )

Sorts the list of entries, based on the filename.

InputStream* ZipFile::createStreamForEntry ( int  index)

Creates a stream that can read from one of the zip file's entries.

The stream that is returned must be deleted by the caller (and zero might be returned if a stream can't be opened for some reason).

The stream must not be used after the ZipFile object that created has been deleted.

InputStream* ZipFile::createStreamForEntry ( const ZipEntry entry)

Creates a stream that can read from one of the zip file's entries.

The stream that is returned must be deleted by the caller (and zero might be returned if a stream can't be opened for some reason).

The stream must not be used after the ZipFile object that created has been deleted.

Result ZipFile::uncompressTo ( const File targetDirectory,
bool  shouldOverwriteFiles = true 
)

Uncompresses all of the files in the zip file.

This will expand all the entries into a target directory. The relative paths of the entries are used.

Parameters
targetDirectorythe root folder to uncompress to
shouldOverwriteFileswhether to overwrite existing files with similarly-named ones
Returns
success if the file is successfully unzipped
Result ZipFile::uncompressEntry ( int  index,
const File targetDirectory,
bool  shouldOverwriteFiles = true 
)

Uncompresses one of the entries from the zip file.

This will expand the entry and write it in a target directory. The entry's path is used to determine which subfolder of the target should contain the new file.

Parameters
indexthe index of the entry to uncompress - this must be a valid index between 0 and (getNumEntries() - 1).
targetDirectorythe root folder to uncompress into
shouldOverwriteFileswhether to overwrite existing files with similarly-named ones
Returns
success if all the files are successfully unzipped

The documentation for this class was generated from the following file: