|
static bool | compressFile (QString fileCompressed, QString file) |
| Compress a single file. More...
|
|
static bool | compressFiles (QString fileCompressed, QStringList files) |
| Compress a list of files. More...
|
|
static bool | compressDir (QString fileCompressed, QString dir=QString(), bool recursive=true) |
| Compress a whole directory. More...
|
|
static QString | extractFile (QString fileCompressed, QString fileName, QString fileDest=QString()) |
| Extract a single file. More...
|
|
static QStringList | extractFiles (QString fileCompressed, QStringList files, QString dir=QString()) |
| Extract a list of files. More...
|
|
static QStringList | extractDir (QString fileCompressed, QString dir=QString()) |
| Extract a whole archive. More...
|
|
static QStringList | getFileList (QString fileCompressed) |
| Get the file list. More...
|
|
This class contains a number of useful static functions to perform simple operations, such as mass ZIP packing or extraction.
Definition at line 42 of file JlCompress.h.
bool JlCompress::compressDir |
( |
QString |
fileCompressed, |
|
|
QString |
dir = QString() , |
|
|
bool |
recursive = true |
|
) |
| |
|
static |
OK Comprime la cartella dir nel file fileCompressed, se recursive e true allora comprime anche le sotto cartelle.
- Parameters
-
fileCompressed | The name of the archive. |
dir | The directory to compress. |
recursive | Whether to pack the subdirectories as well, or just regular files. |
- Returns
- true if success, false otherwise.
Se la funzione fallisce restituisce false e cancella il file che si e tentato di creare.
La funzione fallisce se:
- non si riesce ad aprire l'oggetto zip;
- la compressione di un file fallisce;
- non si riesce a chiudere l'oggetto zip;
Definition at line 338 of file JlCompress.cpp.
References QuaZip::close(), compressSubDir(), QuaZip::getZipError(), QuaZip::mdCreate, and QuaZip::open().
340 QuaZip zip(fileCompressed);
341 QDir().mkpath(QFileInfo(fileCompressed).absolutePath());
343 QFile::remove(fileCompressed);
349 QFile::remove(fileCompressed);
355 if(zip.getZipError()!=0) {
356 QFile::remove(fileCompressed);
static bool compressSubDir(QuaZip *parentZip, QString dir, QString parentDir, bool recursive=true)
Compress a subdirectory.
ZIP file was created with open() call.
bool JlCompress::compressFile |
( |
QuaZip * |
zip, |
|
|
QString |
fileName, |
|
|
QString |
fileDest |
|
) |
| |
|
staticprivate |
OK Comprime il file fileName, nell'oggetto zip, con il nome fileDest.
- Parameters
-
zip | Opened zip to compress the file to. |
fileName | The full path to the source file. |
fileDest | The full name of the file inside the archive. |
- Returns
- true if success, false otherwise.
La funzione fallisce se:
- zip==NULL;
- l'oggetto zip e stato aperto in una modalita non compatibile con l'aggiunta di file;
- non e possibile aprire il file d'origine;
- non e possibile creare il file all'interno dell'oggetto zip;
- si e rilevato un errore nella copia dei dati;
- non e stato possibile chiudere il file all'interno dell'oggetto zip;
Definition at line 53 of file JlCompress.cpp.
References QuaZipFile::close(), copyData(), QuaZip::getMode(), QuaZipFile::getZipError(), QuaZip::mdAdd, QuaZip::mdAppend, QuaZip::mdCreate, QuaZipFile::open(), and UNZ_OK.
Referenced by compressFile(), compressFiles(), and compressSubDir().
59 if (!zip)
return false;
66 inFile.setFileName(fileName);
67 if(!inFile.open(QIODevice::ReadOnly))
return false;
71 if(!outFile.open(QIODevice::WriteOnly,
QuaZipNewInfo(fileDest, inFile.fileName())))
return false;
80 if (outFile.getZipError()!=
UNZ_OK)
return false;
Information about a file to be created.
ZIP file was opened for adding files in the archive.
Mode getMode() const
Returns the mode in which ZIP file was opened.
ZIP file was created with open() call.
A file inside ZIP archive.
static bool copyData(QIODevice &inFile, QIODevice &outFile)
ZIP file was opened in append mode.
bool JlCompress::compressFile |
( |
QString |
fileCompressed, |
|
|
QString |
file |
|
) |
| |
|
static |
OK Comprime il file fileName nel file fileCompressed.
- Parameters
-
fileCompressed | The name of the archive. |
file | The file to compress. |
- Returns
- true if success, false otherwise.
Se la funzione fallisce restituisce false e cancella il file che si e tentato di creare.
La funzione fallisce se:
- non si riesce ad aprire l'oggetto zip;
- la compressione del file fallisce;
- non si riesce a chiudere l'oggetto zip;
Definition at line 263 of file JlCompress.cpp.
References QuaZip::close(), compressFile(), QuaZip::getZipError(), QuaZip::mdCreate, and QuaZip::open().
265 QuaZip zip(fileCompressed);
266 QDir().mkpath(QFileInfo(fileCompressed).absolutePath());
268 QFile::remove(fileCompressed);
273 if (!
compressFile(&zip,file,QFileInfo(file).fileName())) {
274 QFile::remove(fileCompressed);
280 if(zip.getZipError()!=0) {
281 QFile::remove(fileCompressed);
static bool compressFile(QuaZip *zip, QString fileName, QString fileDest)
Compress a single file.
ZIP file was created with open() call.
bool JlCompress::compressFiles |
( |
QString |
fileCompressed, |
|
|
QStringList |
files |
|
) |
| |
|
static |
OK Comprime i file specificati in files nel file fileCompressed.
- Parameters
-
fileCompressed | The name of the archive. |
files | The file list to compress. |
- Returns
- true if success, false otherwise.
Se la funzione fallisce restituisce false e cancella il file che si e tentato di creare.
La funzione fallisce se:
- non si riesce ad aprire l'oggetto zip;
- la compressione di un file fallisce;
- non si riesce a chiudere l'oggetto zip;
Definition at line 298 of file JlCompress.cpp.
References QuaZip::close(), compressFile(), QuaZip::getZipError(), QuaZip::mdCreate, and QuaZip::open().
300 QuaZip zip(fileCompressed);
301 QDir().mkpath(QFileInfo(fileCompressed).absolutePath());
303 QFile::remove(fileCompressed);
309 Q_FOREACH (QString file, files) {
311 if (!info.exists() || !
compressFile(&zip,file,info.fileName())) {
312 QFile::remove(fileCompressed);
319 if(zip.getZipError()!=0) {
320 QFile::remove(fileCompressed);
static bool compressFile(QuaZip *zip, QString fileName, QString fileDest)
Compress a single file.
ZIP file was created with open() call.
bool JlCompress::compressSubDir |
( |
QuaZip * |
zip, |
|
|
QString |
dir, |
|
|
QString |
origDir, |
|
|
bool |
recursive = true |
|
) |
| |
|
staticprivate |
OK Comprime la cartella dir nel file fileCompressed, se recursive e true allora comprime anche le sotto cartelle.
- Parameters
-
parentZip | Opened zip containing the parent directory. |
dir | The full path to the directory to pack. |
parentDir | The full path to the directory corresponding to the root of the ZIP. |
recursive | Whether to pack sub-directories as well or only files. |
- Returns
- true if success, false otherwise.
I nomi dei file preceduti dal path creato togliendo il pat della cartella origDir al path della cartella dir. Se la funzione fallisce restituisce false e cancella il file che si e tentato di creare.
La funzione fallisce se:
- zip==NULL;
- l'oggetto zip e stato aperto in una modalita non compatibile con l'aggiunta di file;
- la cartella dir non esiste;
- la compressione di una sotto cartella fallisce (1);
- la compressione di un file fallisce; (1) La funzione si richiama in maniera ricorsiva per comprimere le sotto cartelle dunque gli errori di compressione di una sotto cartella sono gli stessi di questa funzione.
Definition at line 103 of file JlCompress.cpp.
References QuaZipFile::close(), compressFile(), QuaZip::getMode(), QuaZip::getZipName(), QuaZip::mdAdd, QuaZip::mdAppend, QuaZip::mdCreate, and QuaZipFile::open().
Referenced by compressDir().
110 if (!zip)
return false;
117 if (!directory.exists())
return false;
119 QDir origDirectory(origDir);
120 if (dir != origDir) {
122 if (!dirZipFile.open(QIODevice::WriteOnly,
123 QuaZipNewInfo(origDirectory.relativeFilePath(dir) +
"/", dir), 0, 0, 0)) {
133 QFileInfoList files = directory.entryInfoList(QDir::AllDirs|QDir::NoDotAndDotDot);
134 Q_FOREACH (QFileInfo file, files) {
136 if(!
compressSubDir(zip,file.absoluteFilePath(),origDir,recursive))
return false;
141 QFileInfoList files = directory.entryInfoList(QDir::Files);
142 Q_FOREACH (QFileInfo file, files) {
144 if(!file.isFile()||file.absoluteFilePath()==zip->
getZipName())
continue;
147 QString filename = origDirectory.relativeFilePath(file.absoluteFilePath());
150 if (!
compressFile(zip,file.absoluteFilePath(),filename))
return false;
static bool compressFile(QuaZip *zip, QString fileName, QString fileDest)
Compress a single file.
Information about a file to be created.
static bool compressSubDir(QuaZip *parentZip, QString dir, QString parentDir, bool recursive=true)
Compress a subdirectory.
ZIP file was opened for adding files in the archive.
Mode getMode() const
Returns the mode in which ZIP file was opened.
ZIP file was created with open() call.
QString getZipName() const
Returns the name of the ZIP file.
A file inside ZIP archive.
ZIP file was opened in append mode.
QStringList JlCompress::extractDir |
( |
QString |
fileCompressed, |
|
|
QString |
dir = QString() |
|
) |
| |
|
static |
OK Estrae il file fileCompressed nella cartella dir.
- Parameters
-
fileCompressed | The name of the archive. |
dir | The directory to extract to, the current directory if left empty. |
- Returns
- The list of the full paths of the files extracted, empty on failure.
Se dir = "" allora il file viene estratto nella cartella corrente. Se la funzione fallisce cancella i file che si e tentato di estrarre. Restituisce i nomi assoluti dei file estratti.
La funzione fallisce se:
- non si riesce ad aprire l'oggetto zip;
- la compressione di un file fallisce;
- non si riesce a chiudere l'oggetto zip;
Definition at line 451 of file JlCompress.cpp.
References QuaZip::close(), extractFile(), QuaZip::getCurrentFileName(), QuaZip::getZipError(), QuaZip::goToFirstFile(), QuaZip::goToNextFile(), QuaZip::mdUnzip, QuaZip::open(), and removeFile().
453 QuaZip zip(fileCompressed);
455 return QStringList();
459 QStringList extracted;
460 if (!zip.goToFirstFile()) {
461 return QStringList();
464 QString name = zip.getCurrentFileName();
465 QString absFilePath = directory.absoluteFilePath(name);
468 return QStringList();
470 extracted.append(absFilePath);
471 }
while (zip.goToNextFile());
475 if(zip.getZipError()!=0) {
477 return QStringList();
static bool removeFile(QStringList listFile)
Remove some files.
static bool extractFile(QuaZip *zip, QString fileName, QString fileDest)
Extract a single file.
ZIP file is open for reading files inside it.
bool JlCompress::extractFile |
( |
QuaZip * |
zip, |
|
|
QString |
fileName, |
|
|
QString |
fileDest |
|
) |
| |
|
staticprivate |
OK Estrae il file fileName, contenuto nell'oggetto zip, con il nome fileDest.
- Parameters
-
zip | The opened zip archive to extract from. |
fileName | The full name of the file to extract. |
fileDest | The full path to the destination file. |
- Returns
- true if success, false otherwise.
Se la funzione fallisce restituisce false e cancella il file che si e tentato di estrarre.
La funzione fallisce se:
- zip==NULL;
- l'oggetto zip e stato aperto in una modalita non compatibile con l'estrazione di file;
- non e possibile aprire il file all'interno dell'oggetto zip;
- non e possibile creare il file estratto;
- si e rilevato un errore nella copia dei dati (1);
- non e stato possibile chiudere il file all'interno dell'oggetto zip (1);
(1): prima di uscire dalla funzione cancella il file estratto.
Definition at line 170 of file JlCompress.cpp.
References QuaZipFile::close(), copyData(), QuaZip::getCurrentFileInfo(), QuaZip::getMode(), QuaZipFileInfo64::getPermissions(), QuaZipFile::getZipError(), QuaZip::mdUnzip, QuaZipFile::open(), removeFile(), QuaZip::setCurrentFile(), and UNZ_OK.
Referenced by extractDir(), extractFile(), and extractFiles().
176 if (!zip)
return false;
180 if (!fileName.isEmpty())
183 if(!inFile.open(QIODevice::ReadOnly) || inFile.getZipError()!=
UNZ_OK)
return false;
187 if (fileDest.endsWith(
'/')) {
188 if (!curDir.mkpath(fileDest)) {
192 if (!curDir.mkpath(QFileInfo(fileDest).absolutePath())) {
202 if (fileDest.endsWith(
'/') && QFileInfo(fileDest).isDir()) {
204 QFile(fileDest).setPermissions(srcPerm);
211 outFile.setFileName(fileDest);
212 if(!outFile.open(QIODevice::WriteOnly))
return false;
224 if (inFile.getZipError()!=
UNZ_OK) {
230 outFile.setPermissions(srcPerm);
Mode getMode() const
Returns the mode in which ZIP file was opened.
static bool removeFile(QStringList listFile)
Remove some files.
QFile::Permissions getPermissions() const
Get the file permissions.
Information about a file inside archive (with zip64 support).
bool setCurrentFile(const QString &fileName, CaseSensitivity cs=csDefault)
Sets current file by its name.
ZIP file is open for reading files inside it.
A file inside ZIP archive.
static bool copyData(QIODevice &inFile, QIODevice &outFile)
bool getCurrentFileInfo(QuaZipFileInfo *info) const
Retrieves information about the current file.
QString JlCompress::extractFile |
( |
QString |
fileCompressed, |
|
|
QString |
fileName, |
|
|
QString |
fileDest = QString() |
|
) |
| |
|
static |
OK Estrae il file fileName, contenuto nel file fileCompressed, con il nome fileDest.
- Parameters
-
fileCompressed | The name of the archive. |
fileName | The file to extract. |
fileDest | The destination file, assumed to be identical to file if left empty. |
- Returns
- The list of the full paths of the files extracted, empty on failure.
Se fileDest = "" allora il file viene estratto con lo stesso nome con cui e stato compresso. Se la funzione fallisce cancella il file che si e tentato di estrarre. Restituisce il nome assoluto del file estratto.
La funzione fallisce se:
- non si riesce ad aprire l'oggetto zip;
- l'estrazione del file fallisce;
- non si riesce a chiudere l'oggetto zip;
Definition at line 377 of file JlCompress.cpp.
References QuaZip::close(), extractFile(), QuaZip::getZipError(), QuaZip::mdUnzip, QuaZip::open(), and removeFile().
379 QuaZip zip(fileCompressed);
385 if (fileDest.isEmpty())
393 if(zip.getZipError()!=0) {
397 return QFileInfo(fileDest).absoluteFilePath();
static bool removeFile(QStringList listFile)
Remove some files.
static bool extractFile(QuaZip *zip, QString fileName, QString fileDest)
Extract a single file.
ZIP file is open for reading files inside it.
QStringList JlCompress::extractFiles |
( |
QString |
fileCompressed, |
|
|
QStringList |
files, |
|
|
QString |
dir = QString() |
|
) |
| |
|
static |
OK Estrae i file specificati in files, contenuti nel file fileCompressed, nella cartella dir.
- Parameters
-
fileCompressed | The name of the archive. |
files | The file list to extract. |
dir | The directory to put the files to, the current directory if left empty. |
- Returns
- The list of the full paths of the files extracted, empty on failure.
La struttura a cartelle del file compresso viene rispettata. Se dir = "" allora il file viene estratto nella cartella corrente. Se la funzione fallisce cancella i file che si e tentato di estrarre. Restituisce i nomi assoluti dei file estratti.
La funzione fallisce se:
- non si riesce ad aprire l'oggetto zip;
- l'estrazione di un file fallisce;
- non si riesce a chiudere l'oggetto zip;
Definition at line 412 of file JlCompress.cpp.
References QuaZip::close(), extractFile(), QuaZip::getZipError(), QuaZip::mdUnzip, QuaZip::open(), and removeFile().
414 QuaZip zip(fileCompressed);
416 return QStringList();
420 QStringList extracted;
421 for (
int i=0; i<files.count(); i++) {
422 QString absPath = QDir(dir).absoluteFilePath(files.at(i));
425 return QStringList();
427 extracted.append(absPath);
432 if(zip.getZipError()!=0) {
434 return QStringList();
static bool removeFile(QStringList listFile)
Remove some files.
static bool extractFile(QuaZip *zip, QString fileName, QString fileDest)
Extract a single file.
ZIP file is open for reading files inside it.
QStringList JlCompress::getFileList |
( |
QString |
fileCompressed | ) |
|
|
static |
OK Restituisce la lista dei file resenti nel file compresso fileCompressed.
- Returns
- The list of the files in the archive, or, more precisely, the list of the entries, including both files and directories if they are present separately.
Se la funzione fallisce, restituisce un elenco vuoto.
La funzione fallisce se:
- non si riesce ad aprire l'oggetto zip;
- la richiesta di informazioni di un file fallisce;
- non si riesce a chiudere l'oggetto zip;
Definition at line 492 of file JlCompress.cpp.
References QuaZip::close(), QuaZip::getCurrentFileInfo(), QuaZip::getZipError(), QuaZip::goToFirstFile(), QuaZip::goToNextFile(), QuaZip::mdUnzip, QuaZipFileInfo64::name, and QuaZip::open().
494 QuaZip* zip =
new QuaZip(QFileInfo(fileCompressed).absoluteFilePath());
497 return QStringList();
506 return QStringList();
516 return QStringList();
bool goToFirstFile()
Sets the current file to the first file in the archive.
int getZipError() const
Returns the error code of the last operation.
bool goToNextFile()
Sets the current file to the next file in the archive.
Information about a file inside archive (with zip64 support).
ZIP file is open for reading files inside it.
void close()
Closes ZIP file.
bool open(Mode mode, zlib_filefunc_def *ioApi=NULL)
Opens ZIP file.
bool getCurrentFileInfo(QuaZipFileInfo *info) const
Retrieves information about the current file.
bool JlCompress::removeFile |
( |
QStringList |
listFile | ) |
|
|
staticprivate |
Rimuove i file il cui nome e specificato all'interno di listFile.
- Parameters
-
listFile | The list of files to remove. |
- Returns
- true if success, false otherwise.
Restituisce true se tutti i file sono stati cancellati correttamente, attenzione perche puo restituire false anche se alcuni file non esistevano e si e tentato di cancellarli.
Definition at line 241 of file JlCompress.cpp.
Referenced by extractDir(), extractFile(), and extractFiles().
244 for (
int i=0; i<listFile.count(); i++) {
246 ret = ret && QFile::remove(listFile.at(i));