28 #include <QtCore/QString>
29 #include <QtCore/QStringList>
30 #include <QtCore/QTextCodec>
35 #include "quazip_global.h"
36 #include "quazipfileinfo.h"
41 #define UNZ_OPENERROR -1000
89 MAX_FILE_NAME_LENGTH=256
126 static Qt::CaseSensitivity convertCaseSensitivity(
139 QuaZip(
const QString& zipName);
142 QuaZip(QIODevice *ioDevice);
193 bool open(Mode mode, zlib_filefunc_def *ioApi =NULL);
224 void setFileNameCodec(QTextCodec *fileNameCodec);
229 void setFileNameCodec(
const char *fileNameCodecName);
235 void setOsCode(uint osCode);
237 uint getOsCode()
const;
239 QTextCodec* getFileNameCodec()
const;
243 void setCommentCodec(QTextCodec *commentCodec);
248 void setCommentCodec(
const char *commentCodecName);
250 QTextCodec* getCommentCodec()
const;
257 QString getZipName()
const;
264 void setZipName(
const QString& zipName);
270 QIODevice *getIoDevice()
const;
277 void setIoDevice(QIODevice *ioDevice);
279 Mode getMode()
const;
291 int getZipError()
const;
296 int getEntriesCount()
const;
298 QString getComment()
const;
308 void setComment(
const QString& comment);
313 bool goToFirstFile();
358 bool setCurrentFile(
const QString& fileName, CaseSensitivity cs =csDefault);
360 bool hasCurrentFile()
const;
401 QString getCurrentFileName()
const;
418 unzFile getUnzFile();
424 zipFile getZipFile();
453 void setDataDescriptorWritingEnabled(
bool enabled);
458 bool isDataDescriptorWritingEnabled()
const;
466 QStringList getFileNameList()
const;
480 QList<QuaZipFileInfo> getFileInfoList()
const;
490 QList<QuaZipFileInfo64> getFileInfoList64()
const;
505 void setZip64Enabled(
bool zip64);
512 bool isZip64Enabled()
const;
527 void setUtf8Enabled(
bool utf8);
534 bool isUtf8Enabled()
const;
539 bool isAutoClose()
const;
561 void setAutoClose(
bool autoClose)
const;
592 static void setDefaultFileNameCodec(QTextCodec *codec);
598 static void setDefaultFileNameCodec(
const char *codecName);
603 static void setDefaultOsCode(uint osCode);
608 static uint getDefaultOsCode();
void setDataDescriptorWritingEnabled(bool enabled)
Changes the data descriptor writing mode.
Definition: quazip.cpp:687
void setOsCode(uint osCode)
Sets the OS code (highest 8 bits of the “version made by” field) for new files.
Definition: quazip.cpp:610
static void setDefaultOsCode(uint osCode)
Sets default OS code.
Definition: quazip.cpp:808
bool toQuaZipFileInfo(QuaZipFileInfo &info) const
Converts to QuaZipFileInfo.
Definition: quazipfileinfo.cpp:64
void setUtf8Enabled(bool utf8)
Enables the use of UTF-8 encoding for file names and comments text.
Definition: quazip.cpp:828
@ mdAppend
Definition: quazip.h:98
quint16 versionCreated
Version created by.
Definition: quazipfileinfo.h:89
QString comment
Comment.
Definition: quazipfileinfo.h:118
bool isOpen() const
Returns true if ZIP file is open, false otherwise.
Definition: quazip.cpp:657
static void setDefaultFileNameCodec(QTextCodec *codec)
Sets the default file name codec to use.
Definition: quazip.cpp:798
QList< QuaZipFileInfo > getFileInfoList() const
Returns information list about all files inside the archive.
Definition: quazip.cpp:767
QByteArray extra
Extra field.
Definition: quazipfileinfo.h:120
Mode getMode() const
Returns the mode in which ZIP file was opened.
Definition: quazip.cpp:652
void setCommentCodec(QTextCodec *commentCodec)
Sets the codec used to encode/decode comments inside archive.
Definition: quazip.cpp:625
@ mdCreate
ZIP file was created with open() call.
Definition: quazip.h:97
unzFile unzFile_f
The internal handle for UNZIP modes.
Definition: quazip.cpp:61
static Qt::CaseSensitivity convertCaseSensitivity(CaseSensitivity cs)
Returns the actual case sensitivity for the specified QuaZIP one.
Definition: quazip.cpp:785
void setIoDevice(QIODevice *ioDevice)
Sets the device representing the ZIP file.
Definition: quazip.cpp:388
quint16 versionNeeded
Version needed to extract.
Definition: quazipfileinfo.h:91
quint32 externalAttr
External file attributes.
Definition: quazipfileinfo.h:116
bool isAutoClose() const
Returns the auto-close flag.
Definition: quazip.cpp:838
static uint getDefaultOsCode()
Returns default OS code.
Definition: quazip.cpp:813
@ mdUnzip
ZIP file is open for reading files inside it.
Definition: quazip.h:96
QList< QuaZipFileInfo64 > getFileInfoList64() const
Returns information list about all files inside the archive.
Definition: quazip.cpp:776
bool isZip64Enabled() const
Returns whether the zip64 mode is enabled.
Definition: quazip.cpp:823
uint getOsCode() const
Returns the OS code for new files.
Definition: quazip.cpp:615
Mode
Open mode of the ZIP file.
Definition: quazip.h:94
bool isUtf8Enabled() const
Returns whether the UTF-8 encoding mode is enabled.
Definition: quazip.cpp:833
QIODevice * getIoDevice() const
Returns the device representing this ZIP file.
Definition: quazip.cpp:645
bool goToNextFile()
Sets the current file to the next file in the archive.
Definition: quazip.cpp:503
bool getCurrentFileInfo(QuaZipFileInfo *info) const
Retrieves information about the current file.
Definition: quazip.cpp:517
int getZipError() const
Returns the error code of the last operation.
Definition: quazip.cpp:662
bool setCurrentFile(const QString &fileName, CaseSensitivity cs=csDefault)
Sets current file by its name.
Definition: quazip.cpp:433
Information about a file inside archive.
Definition: quazipfileinfo.h:45
void setAutoClose(bool autoClose) const
Sets or unsets the auto-close flag.
Definition: quazip.cpp:843
QStringList getFileNameList() const
Returns a list of files inside the archive.
Definition: quazip.cpp:758
QString getZipName() const
Returns the name of the ZIP file.
Definition: quazip.cpp:640
quint32 crc
CRC.
Definition: quazipfileinfo.h:106
quint64 compressedSize
Compressed file size.
Definition: quazipfileinfo.h:108
unzFile getUnzFile()
Returns unzFile handle.
Definition: quazip.cpp:677
CaseSensitivity
Case sensitivity for the file names.
Definition: quazip.h:114
ZIP archive.
Definition: quazip.h:84
quint16 method
Compression method.
Definition: quazipfileinfo.h:95
bool isDataDescriptorWritingEnabled() const
Returns the data descriptor default writing mode.
Definition: quazip.cpp:692
quint64 uncompressedSize
Uncompressed file size.
Definition: quazipfileinfo.h:110
QTextCodec * getFileNameCodec() const
Returns the codec used to encode/decode comments inside archive.
Definition: quazip.cpp:620
zipFile getZipFile()
Returns zipFile handle.
Definition: quazip.cpp:682
QuaZip()
Constructs QuaZip object.
Definition: quazip.cpp:214
@ csSensitive
Case sensitive.
Definition: quazip.h:116
All the internal stuff for the QuaZip class.
Definition: quazip.cpp:41
int getEntriesCount() const
Returns number of the entries in the ZIP central directory.
Definition: quazip.cpp:398
QDateTime dateTime
Last modification date and time.
Definition: quazipfileinfo.h:104
QString getComment() const
Returns global comment in the ZIP file.
Definition: quazip.cpp:412
quint16 flags
General purpose flags.
Definition: quazipfileinfo.h:93
void setZipName(const QString &zipName)
Sets the name of the ZIP file.
Definition: quazip.cpp:378
@ csDefault
Default for platform. Case sensitive for UNIX, not for Windows.
Definition: quazip.h:115
void setFileNameCodec(QTextCodec *fileNameCodec)
Sets the codec used to encode/decode file names inside archive.
Definition: quazip.cpp:600
QString getCurrentFileName() const
Returns the current file name.
Definition: quazip.cpp:576
void setZip64Enabled(bool zip64)
Enables the zip64 mode.
Definition: quazip.cpp:818
bool hasCurrentFile() const
Returns true if the current file has been set.
Definition: quazip.cpp:672
Information about a file inside archive (with zip64 support).
Definition: quazipfileinfo.h:85
void close()
Closes ZIP file.
Definition: quazip.cpp:347
QString name
File name.
Definition: quazipfileinfo.h:87
Constants
Useful constants.
Definition: quazip.h:88
zipFile zipFile_f
The internal handle for ZIP modes.
Definition: quazip.cpp:63
bool goToFirstFile()
Sets the current file to the first file in the archive.
Definition: quazip.cpp:491
bool open(Mode mode, zlib_filefunc_def *ioApi=NULL)
Opens ZIP file.
Definition: quazip.cpp:236
@ MAX_FILE_NAME_LENGTH
Definition: quazip.h:89
@ mdAdd
ZIP file was opened for adding files in the archive.
Definition: quazip.h:106
quint16 diskNumberStart
Disk number start.
Definition: quazipfileinfo.h:112
@ mdNotOpen
ZIP file is not open. This is the initial mode.
Definition: quazip.h:95
quint16 internalAttr
Internal file attributes.
Definition: quazipfileinfo.h:114
QTextCodec * getCommentCodec() const
Returns the codec used to encode/decode comments inside archive.
Definition: quazip.cpp:635
void setComment(const QString &comment)
Sets the global comment in the ZIP file.
Definition: quazip.cpp:667
~QuaZip()
Destroys QuaZip object.
Definition: quazip.cpp:229