2012-04-24 22 views
6

Creé la biblioteca quazip. Necesito un ejemplo simple que muestre cómo descomprimir un archivo zip. Por ejemplo.Qt: Ejemplo simple para Quazip

Quazip zipFile(QFile("test.zip")); 
zipFile.unzip(); 

Las pruebas que se muestran en quazip son un poco confusas. Busqué una breve cantidad de tiempo para encontrar un ejemplo y no pude encontrar uno.

Respuesta

10

Aquí hay un ejemplo rápido que muestra cómo leer los archivos. Usted tendrá que hacer algunas modificaciones al código en el bucle para escribir los datos en un archivo o realizar cualquier operación de su aplicación requiere:

QuaZip zip("zipFile.zip"); 
zip.open(QuaZip::mdUnzip); 

QuaZipFile file(&zip); 

for(bool f=zip.goToFirstFile(); f; f=zip.goToNextFile()) { 
    file.open(QIODevice::ReadOnly); 
    //same functionality as QIODevice::readData() -- data is a char*, maxSize is qint64 
    file.readData(data,maxSize); 
    //do something with the data 
    file.close(); 
} 

zip.close(); 
8

Puede utilizar las funciones estáticas de la clase JlCompress. Es muy fácil de usar.

Funciones

miembro estático público

static bool  compressFile (QString fileCompressed, QString file) 
static bool  compressFiles (QString fileCompressed, QStringList files) 
static bool  compressDir (QString fileCompressed, QString dir=QString(), bool recursive=true) 
static QString extractFile (QString fileCompressed, QString fileName, QString fileDest=QString()) 
static QStringList extractFiles (QString fileCompressed, QStringList files, QString dir=QString()) 
static QStringList extractDir (QString fileCompressed, QString dir=QString()) 
static QStringList getFileList (QString fileCompressed) 

Fuente: http://quazip.sourceforge.net/classJlCompress.html