Seite 1 von 1

Zip und Unzip classe von Trolltech

Verfasst: 17. September 2008 09:35
von patrik08
Seit QT 4.5 gibt es zip und unzip im QT source ich habe das ganze in einen namenspace gekapselt so kann man es auch fuer 4.0 , 4.4 gebrauchen getested auf 4.4.1

um die file zu lesen

Code: Alles auswählen


/*                    file name and path , his data */
QMap<QString,QByteArray> unzipstream( const QString file )
{
/*
  #include "GZipWriter.h"
  #include "GZipReader.h"
*/
      QMap<QString,QByteArray> ooFile;
      CZIP::QZipReader unzip(file,QIODevice::ReadOnly);
      QList<CZIP::QZipReader::FileInfo> list = unzip.fileInfoList();
      CZIP::QZipReader::FileInfo fi;
      if (list.size() > 0 && unzip.exists()) {
                  for (int l = 0; l < list.size(); l++)
                  {
                     fi = list.at(l);
                     if (fi.size > 0) {
                     ooFile.insert(fi.filePath,unzip.fileData(fi.filePath));
                     }
                  }
                  
        unzip.close();    
       }
   return ooFile;
       
     /*  usage 
     QString txtlog;
     QMap<QString,QByteArray>  filist = unzipstream("giallo.odt");
     QMapIterator<QString,QByteArray> i(filist);
         while (i.hasNext()) {
             i.next();
             qDebug() << "### name---------- " << i.key();
             txtlog.append(i.key());
         }   
    QByteArray base = filist["content.xml"];
    if (base.size() > 0) {
        txtlog.append(QString(base));
    }
    */ 
}


um zip zu schreiben im header GZipWriter.h shauen
Ich musste das machen um den OpenDocument reader zu machen... info:
http://www.qt-apps.org/content/show.php ... tent=80650

Naturlich wenn man 4.5 braucht sind die file nicht noetig.



http://fop-miniscribus.googlecode.com/s ... s/GZip.cpp
http://fop-miniscribus.googlecode.com/s ... ipReader.h
http://fop-miniscribus.googlecode.com/s ... ipWriter.h

Verfasst: 1. April 2009 23:40
von QtNoob2008
Hallo,

du sagst
Seit QT 4.5 gibt es zip und unzip im QT source
Ich würde gerne die zip Functionaltät verwenden (benötige nur unzip) Welche Klassen muss ich einbinden. Hab auf anhieb nichts gefunden...

Verfasst: 2. April 2009 07:21
von upsala
\class QZipWriter
\internal
\since 4.5
\class QZipReader::FileInfo
\internal

Verfasst: 2. April 2009 16:07
von QtNoob2008
Bedeutet es dass diese nur irgendwie internal verfügbar sind oder verstehe ich das falsch?
Hab Qt 4.5.0 drauf...