bool ZipArchive::openArchive(Stream *stream, AccessMode mode /* = Read */)
{
   if(mode != Read && mode != Write && mode != ReadWrite)
      return false;

   mStream = stream;
   mMode = mode;

   if(mode == Read || mode == ReadWrite)
   {
      bool ret = readCentralDirectory();
      if(mode == Read)
         return ret;

      return true;
   }
   else
   {
      mEntries.clear();
      SAFE_DELETE(mRoot);
      mRoot = new ZipEntry;
      mRoot->mName = "";
      mRoot->mIsDirectory = true;
      mRoot->mCD.setFilename("");
   }

   return true;
}
Exemple #2
0
bool ZipFile::init( istream &_zipfile ) {

  // Check stream error state
  if ( ! _zipfile ) {
    setError ( "Error reading from file" ) ;
    return false ;
  }
  
  _valid = readCentralDirectory( _zipfile ) ;

  return _valid ;
}