@@ -6,7 +6,7 @@ This file is part of QuaZIP.
6
6
7
7
QuaZIP is free software: you can redistribute it and/or modify
8
8
it under the terms of the GNU Lesser General Public License as published by
9
- the Free Software Foundation, either version 3 of the License, or
9
+ the Free Software Foundation, either version 2.1 of the License, or
10
10
(at your option) any later version.
11
11
12
12
QuaZIP is distributed in the hope that it will be useful,
@@ -39,17 +39,6 @@ static bool copyData(QIODevice &inFile, QIODevice &outFile)
39
39
return true ;
40
40
}
41
41
42
- /* *OK
43
- * Comprime il file fileName, nell'oggetto zip, con il nome fileDest.
44
- *
45
- * La funzione fallisce se:
46
- * * zip==NULL;
47
- * * l'oggetto zip e stato aperto in una modalita non compatibile con l'aggiunta di file;
48
- * * non e possibile aprire il file d'origine;
49
- * * non e possibile creare il file all'interno dell'oggetto zip;
50
- * * si e rilevato un errore nella copia dei dati;
51
- * * non e stato possibile chiudere il file all'interno dell'oggetto zip;
52
- */
53
42
bool JlCompress::compressFile (QuaZip* zip, QString fileName, QString fileDest) {
54
43
// zip: oggetto dove aggiungere il file
55
44
// fileName: nome del file reale
@@ -83,24 +72,7 @@ bool JlCompress::compressFile(QuaZip* zip, QString fileName, QString fileDest) {
83
72
return true ;
84
73
}
85
74
86
- /* *OK
87
- * Comprime la cartella dir nel file fileCompressed, se recursive e true allora
88
- * comprime anche le sotto cartelle. I nomi dei file preceduti dal path creato
89
- * togliendo il pat della cartella origDir al path della cartella dir.
90
- * Se la funzione fallisce restituisce false e cancella il file che si e tentato
91
- * di creare.
92
- *
93
- * La funzione fallisce se:
94
- * * zip==NULL;
95
- * * l'oggetto zip e stato aperto in una modalita non compatibile con l'aggiunta di file;
96
- * * la cartella dir non esiste;
97
- * * la compressione di una sotto cartella fallisce (1);
98
- * * la compressione di un file fallisce;
99
- * (1) La funzione si richiama in maniera ricorsiva per comprimere le sotto cartelle
100
- * dunque gli errori di compressione di una sotto cartella sono gli stessi di questa
101
- * funzione.
102
- */
103
- bool JlCompress::compressSubDir (QuaZip* zip, QString dir, QString origDir, bool recursive) {
75
+ bool JlCompress::compressSubDir (QuaZip* zip, QString dir, QString origDir, bool recursive, QDir::Filters filters) {
104
76
// zip: oggetto dove aggiungere il file
105
77
// dir: cartella reale corrente
106
78
// origDir: cartella reale originale
@@ -130,15 +102,15 @@ bool JlCompress::compressSubDir(QuaZip* zip, QString dir, QString origDir, bool
130
102
// Se comprimo anche le sotto cartelle
131
103
if (recursive) {
132
104
// Per ogni sotto cartella
133
- QFileInfoList files = directory.entryInfoList (QDir::AllDirs|QDir::NoDotAndDotDot);
105
+ QFileInfoList files = directory.entryInfoList (QDir::AllDirs|QDir::NoDotAndDotDot|filters );
134
106
Q_FOREACH (QFileInfo file, files) {
135
107
// Comprimo la sotto cartella
136
- if (!compressSubDir (zip,file.absoluteFilePath (),origDir,recursive)) return false ;
108
+ if (!compressSubDir (zip,file.absoluteFilePath (),origDir,recursive,filters )) return false ;
137
109
}
138
110
}
139
111
140
112
// Per ogni file nella cartella
141
- QFileInfoList files = directory.entryInfoList (QDir::Files);
113
+ QFileInfoList files = directory.entryInfoList (QDir::Files|filters );
142
114
Q_FOREACH (QFileInfo file, files) {
143
115
// Se non e un file o e il file compresso che sto creando
144
116
if (!file.isFile ()||file.absoluteFilePath ()==zip->getZipName ()) continue ;
@@ -153,20 +125,6 @@ bool JlCompress::compressSubDir(QuaZip* zip, QString dir, QString origDir, bool
153
125
return true ;
154
126
}
155
127
156
- /* *OK
157
- * Estrae il file fileName, contenuto nell'oggetto zip, con il nome fileDest.
158
- * Se la funzione fallisce restituisce false e cancella il file che si e tentato di estrarre.
159
- *
160
- * La funzione fallisce se:
161
- * * zip==NULL;
162
- * * l'oggetto zip e stato aperto in una modalita non compatibile con l'estrazione di file;
163
- * * non e possibile aprire il file all'interno dell'oggetto zip;
164
- * * non e possibile creare il file estratto;
165
- * * si e rilevato un errore nella copia dei dati (1);
166
- * * non e stato possibile chiudere il file all'interno dell'oggetto zip (1);
167
- *
168
- * (1): prima di uscire dalla funzione cancella il file estratto.
169
- */
170
128
bool JlCompress::extractFile (QuaZip* zip, QString fileName, QString fileDest) {
171
129
// zip: oggetto dove aggiungere il file
172
130
// filename: nome del file reale
@@ -232,12 +190,6 @@ bool JlCompress::extractFile(QuaZip* zip, QString fileName, QString fileDest) {
232
190
return true ;
233
191
}
234
192
235
- /* *
236
- * Rimuove i file il cui nome e specificato all'interno di listFile.
237
- * Restituisce true se tutti i file sono stati cancellati correttamente, attenzione
238
- * perche puo restituire false anche se alcuni file non esistevano e si e tentato
239
- * di cancellarli.
240
- */
241
193
bool JlCompress::removeFile (QStringList listFile) {
242
194
bool ret = true ;
243
195
// Per ogni file
@@ -248,18 +200,6 @@ bool JlCompress::removeFile(QStringList listFile) {
248
200
return ret;
249
201
}
250
202
251
- // //////////////////////////////////////////////////////////////////////////////
252
- // //////////////////////////////////////////////////////////////////////////////
253
- /* *OK
254
- * Comprime il file fileName nel file fileCompressed.
255
- * Se la funzione fallisce restituisce false e cancella il file che si e tentato
256
- * di creare.
257
- *
258
- * La funzione fallisce se:
259
- * * non si riesce ad aprire l'oggetto zip;
260
- * * la compressione del file fallisce;
261
- * * non si riesce a chiudere l'oggetto zip;
262
- */
263
203
bool JlCompress::compressFile (QString fileCompressed, QString file) {
264
204
// Creo lo zip
265
205
QuaZip zip (fileCompressed);
@@ -285,16 +225,6 @@ bool JlCompress::compressFile(QString fileCompressed, QString file) {
285
225
return true ;
286
226
}
287
227
288
- /* *OK
289
- * Comprime i file specificati in files nel file fileCompressed.
290
- * Se la funzione fallisce restituisce false e cancella il file che si e tentato
291
- * di creare.
292
- *
293
- * La funzione fallisce se:
294
- * * non si riesce ad aprire l'oggetto zip;
295
- * * la compressione di un file fallisce;
296
- * * non si riesce a chiudere l'oggetto zip;
297
- */
298
228
bool JlCompress::compressFiles (QString fileCompressed, QStringList files) {
299
229
// Creo lo zip
300
230
QuaZip zip (fileCompressed);
@@ -324,18 +254,13 @@ bool JlCompress::compressFiles(QString fileCompressed, QStringList files) {
324
254
return true ;
325
255
}
326
256
327
- /* *OK
328
- * Comprime la cartella dir nel file fileCompressed, se recursive e true allora
329
- * comprime anche le sotto cartelle.
330
- * Se la funzione fallisce restituisce false e cancella il file che si e tentato
331
- * di creare.
332
- *
333
- * La funzione fallisce se:
334
- * * non si riesce ad aprire l'oggetto zip;
335
- * * la compressione di un file fallisce;
336
- * * non si riesce a chiudere l'oggetto zip;
337
- */
338
257
bool JlCompress::compressDir (QString fileCompressed, QString dir, bool recursive) {
258
+ return compressDir (fileCompressed, dir, recursive, 0 );
259
+ }
260
+
261
+ bool JlCompress::compressDir (QString fileCompressed, QString dir,
262
+ bool recursive, QDir::Filters filters)
263
+ {
339
264
// Creo lo zip
340
265
QuaZip zip (fileCompressed);
341
266
QDir ().mkpath (QFileInfo (fileCompressed).absolutePath ());
@@ -345,7 +270,7 @@ bool JlCompress::compressDir(QString fileCompressed, QString dir, bool recursive
345
270
}
346
271
347
272
// Aggiungo i file e le sotto cartelle
348
- if (!compressSubDir (&zip,dir,dir,recursive)) {
273
+ if (!compressSubDir (&zip,dir,dir,recursive, filters )) {
349
274
QFile::remove (fileCompressed);
350
275
return false ;
351
276
}
@@ -360,29 +285,20 @@ bool JlCompress::compressDir(QString fileCompressed, QString dir, bool recursive
360
285
return true ;
361
286
}
362
287
363
- // //////////////////////////////////////////////////////////////////////////////
364
- // //////////////////////////////////////////////////////////////////////////////
365
- /* *OK
366
- * Estrae il file fileName, contenuto nel file fileCompressed, con il nome fileDest.
367
- * Se fileDest = "" allora il file viene estratto con lo stesso nome con cui e
368
- * stato compresso.
369
- * Se la funzione fallisce cancella il file che si e tentato di estrarre.
370
- * Restituisce il nome assoluto del file estratto.
371
- *
372
- * La funzione fallisce se:
373
- * * non si riesce ad aprire l'oggetto zip;
374
- * * l'estrazione del file fallisce;
375
- * * non si riesce a chiudere l'oggetto zip;
376
- */
377
288
QString JlCompress::extractFile (QString fileCompressed, QString fileName, QString fileDest) {
378
289
// Apro lo zip
379
290
QuaZip zip (fileCompressed);
291
+ return extractFile (zip, fileName, fileDest);
292
+ }
293
+
294
+ QString JlCompress::extractFile (QuaZip &zip, QString fileName, QString fileDest)
295
+ {
380
296
if (!zip.open (QuaZip::mdUnzip)) {
381
297
return QString ();
382
298
}
383
299
384
300
// Estraggo il file
385
- if (fileDest.isEmpty ())
301
+ if (fileDest.isEmpty ())
386
302
fileDest = fileName;
387
303
if (!extractFile (&zip,fileName,fileDest)) {
388
304
return QString ();
@@ -397,21 +313,14 @@ QString JlCompress::extractFile(QString fileCompressed, QString fileName, QStrin
397
313
return QFileInfo (fileDest).absoluteFilePath ();
398
314
}
399
315
400
- /* *OK
401
- * Estrae i file specificati in files, contenuti nel file fileCompressed, nella
402
- * cartella dir. La struttura a cartelle del file compresso viene rispettata.
403
- * Se dir = "" allora il file viene estratto nella cartella corrente.
404
- * Se la funzione fallisce cancella i file che si e tentato di estrarre.
405
- * Restituisce i nomi assoluti dei file estratti.
406
- *
407
- * La funzione fallisce se:
408
- * * non si riesce ad aprire l'oggetto zip;
409
- * * l'estrazione di un file fallisce;
410
- * * non si riesce a chiudere l'oggetto zip;
411
- */
412
316
QStringList JlCompress::extractFiles (QString fileCompressed, QStringList files, QString dir) {
413
317
// Creo lo zip
414
318
QuaZip zip (fileCompressed);
319
+ return extractFiles (zip, files, dir);
320
+ }
321
+
322
+ QStringList JlCompress::extractFiles (QuaZip &zip, const QStringList &files, const QString &dir)
323
+ {
415
324
if (!zip.open (QuaZip::mdUnzip)) {
416
325
return QStringList ();
417
326
}
@@ -437,20 +346,14 @@ QStringList JlCompress::extractFiles(QString fileCompressed, QStringList files,
437
346
return extracted;
438
347
}
439
348
440
- /* *OK
441
- * Estrae il file fileCompressed nella cartella dir.
442
- * Se dir = "" allora il file viene estratto nella cartella corrente.
443
- * Se la funzione fallisce cancella i file che si e tentato di estrarre.
444
- * Restituisce i nomi assoluti dei file estratti.
445
- *
446
- * La funzione fallisce se:
447
- * * non si riesce ad aprire l'oggetto zip;
448
- * * la compressione di un file fallisce;
449
- * * non si riesce a chiudere l'oggetto zip;
450
- */
451
349
QStringList JlCompress::extractDir (QString fileCompressed, QString dir) {
452
350
// Apro lo zip
453
351
QuaZip zip (fileCompressed);
352
+ return extractDir (zip, dir);
353
+ }
354
+
355
+ QStringList JlCompress::extractDir (QuaZip &zip, const QString &dir)
356
+ {
454
357
if (!zip.open (QuaZip::mdUnzip)) {
455
358
return QStringList ();
456
359
}
@@ -480,18 +383,14 @@ QStringList JlCompress::extractDir(QString fileCompressed, QString dir) {
480
383
return extracted;
481
384
}
482
385
483
- /* *OK
484
- * Restituisce la lista dei file resenti nel file compresso fileCompressed.
485
- * Se la funzione fallisce, restituisce un elenco vuoto.
486
- *
487
- * La funzione fallisce se:
488
- * * non si riesce ad aprire l'oggetto zip;
489
- * * la richiesta di informazioni di un file fallisce;
490
- * * non si riesce a chiudere l'oggetto zip;
491
- */
492
386
QStringList JlCompress::getFileList (QString fileCompressed) {
493
387
// Apro lo zip
494
388
QuaZip* zip = new QuaZip (QFileInfo (fileCompressed).absoluteFilePath ());
389
+ return getFileList (zip);
390
+ }
391
+
392
+ QStringList JlCompress::getFileList (QuaZip *zip)
393
+ {
495
394
if (!zip->open (QuaZip::mdUnzip)) {
496
395
delete zip;
497
396
return QStringList ();
@@ -516,7 +415,29 @@ QStringList JlCompress::getFileList(QString fileCompressed) {
516
415
return QStringList ();
517
416
}
518
417
delete zip;
519
-
520
418
return lst;
521
419
}
522
420
421
+ QStringList JlCompress::extractDir (QIODevice *ioDevice, QString dir)
422
+ {
423
+ QuaZip zip (ioDevice);
424
+ return extractDir (zip, dir);
425
+ }
426
+
427
+ QStringList JlCompress::getFileList (QIODevice *ioDevice)
428
+ {
429
+ QuaZip *zip = new QuaZip (ioDevice);
430
+ return getFileList (zip);
431
+ }
432
+
433
+ QString JlCompress::extractFile (QIODevice *ioDevice, QString fileName, QString fileDest)
434
+ {
435
+ QuaZip zip (ioDevice);
436
+ return extractFile (zip, fileName, fileDest);
437
+ }
438
+
439
+ QStringList JlCompress::extractFiles (QIODevice *ioDevice, QStringList files, QString dir)
440
+ {
441
+ QuaZip zip (ioDevice);
442
+ return extractFiles (zip, files, dir);
443
+ }
0 commit comments