28 #include <QtCore/QString>
29 #include <QtCore/QStringList>
30 #include "quazip_qt_compat.h"
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(
135 QuaZip(
const QString& zipName);
138 QuaZip(QIODevice *ioDevice);
193 bool open(Mode mode, zlib_filefunc_def *ioApi =
nullptr);
229 void setFileNameCodec(QTextCodec *fileNameCodec);
234 void setFileNameCodec(
const char *fileNameCodecName);
240 void setOsCode(uint osCode);
242 uint getOsCode()
const;
244 QTextCodec* getFileNameCodec()
const;
248 void setCommentCodec(QTextCodec *commentCodec);
253 void setCommentCodec(
const char *commentCodecName);
255 QTextCodec* getCommentCodec()
const;
262 QString getZipName()
const;
269 void setZipName(
const QString& zipName);
275 QIODevice *getIoDevice()
const;
282 void setIoDevice(QIODevice *ioDevice);
284 Mode getMode()
const;
296 int getZipError()
const;
301 int getEntriesCount()
const;
303 QString getComment()
const;
313 void setComment(
const QString& comment);
318 bool goToFirstFile();
363 bool setCurrentFile(
const QString& fileName, CaseSensitivity cs =csDefault);
365 bool hasCurrentFile()
const;
406 QString getCurrentFileName()
const;
423 unzFile getUnzFile();
429 zipFile getZipFile();
458 void setDataDescriptorWritingEnabled(
bool enabled);
463 bool isDataDescriptorWritingEnabled()
const;
471 QStringList getFileNameList()
const;
485 QList<QuaZipFileInfo> getFileInfoList()
const;
495 QList<QuaZipFileInfo64> getFileInfoList64()
const;
510 void setZip64Enabled(
bool zip64);
517 bool isZip64Enabled()
const;
532 void setUtf8Enabled(
bool utf8);
539 bool isUtf8Enabled()
const;
544 bool isAutoClose()
const;
566 void setAutoClose(
bool autoClose)
const;
597 static void setDefaultFileNameCodec(QTextCodec *codec);
603 static void setDefaultFileNameCodec(
const char *codecName);
608 static void setDefaultOsCode(uint osCode);
613 static uint getDefaultOsCode();
void setDataDescriptorWritingEnabled(bool enabled)
Changes the data descriptor writing mode.
Definition: quazip.cpp:678
bool open(Mode mode, zlib_filefunc_def *ioApi=nullptr)
Opens ZIP file.
Definition: quazip.cpp:235
void setOsCode(uint osCode)
Sets the OS code (highest 8 bits of the “version made by” field) for new files.
Definition: quazip.cpp:601
static void setDefaultOsCode(uint osCode)
Sets default OS code.
Definition: quazip.cpp:796
bool toQuaZipFileInfo(QuaZipFileInfo &info) const
Converts to QuaZipFileInfo.
Definition: quazipfileinfo.cpp:70
void setUtf8Enabled(bool utf8)
Enables the use of UTF-8 encoding for file names and comments text.
Definition: quazip.cpp:816
@ 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:648
static void setDefaultFileNameCodec(QTextCodec *codec)
Sets the default file name codec to use.
Definition: quazip.cpp:786
QList< QuaZipFileInfo > getFileInfoList() const
Returns information list about all files inside the archive.
Definition: quazip.cpp:757
QByteArray extra
Extra field.
Definition: quazipfileinfo.h:120
Mode getMode() const
Returns the mode in which ZIP file was opened.
Definition: quazip.cpp:643
void setCommentCodec(QTextCodec *commentCodec)
Sets the codec used to encode/decode comments inside archive.
Definition: quazip.cpp:616
@ 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:773
void setIoDevice(QIODevice *ioDevice)
Sets the device representing the ZIP file.
Definition: quazip.cpp:380
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:826
static uint getDefaultOsCode()
Returns default OS code.
Definition: quazip.cpp:801
@ 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:765
bool isZip64Enabled() const
Returns whether the zip64 mode is enabled.
Definition: quazip.cpp:811
uint getOsCode() const
Returns the OS code for new files.
Definition: quazip.cpp:606
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:821
QIODevice * getIoDevice() const
Returns the device representing this ZIP file.
Definition: quazip.cpp:636
bool goToNextFile()
Sets the current file to the next file in the archive.
Definition: quazip.cpp:495
bool getCurrentFileInfo(QuaZipFileInfo *info) const
Retrieves information about the current file.
Definition: quazip.cpp:509
int getZipError() const
Returns the error code of the last operation.
Definition: quazip.cpp:653
bool setCurrentFile(const QString &fileName, CaseSensitivity cs=csDefault)
Sets current file by its name.
Definition: quazip.cpp:425
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:831
QStringList getFileNameList() const
Returns a list of files inside the archive.
Definition: quazip.cpp:749
QString getZipName() const
Returns the name of the ZIP file.
Definition: quazip.cpp:631
quint32 crc
CRC.
Definition: quazipfileinfo.h:106
quint64 compressedSize
Compressed file size.
Definition: quazipfileinfo.h:108
unzFile getUnzFile()
Returns unzFile handle.
Definition: quazip.cpp:668
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:683
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:611
zipFile getZipFile()
Returns zipFile handle.
Definition: quazip.cpp:673
QuaZip()
Constructs QuaZip object.
Definition: quazip.cpp:213
@ 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:390
QDateTime dateTime
Last modification date and time.
Definition: quazipfileinfo.h:104
QString getComment() const
Returns global comment in the ZIP file.
Definition: quazip.cpp:404
quint16 flags
General purpose flags.
Definition: quazipfileinfo.h:93
void setZipName(const QString &zipName)
Sets the name of the ZIP file.
Definition: quazip.cpp:370
@ 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:591
QString getCurrentFileName() const
Returns the current file name.
Definition: quazip.cpp:567
void setZip64Enabled(bool zip64)
Enables the zip64 mode.
Definition: quazip.cpp:806
bool hasCurrentFile() const
Returns true if the current file has been set.
Definition: quazip.cpp:663
Information about a file inside archive (with zip64 support).
Definition: quazipfileinfo.h:85
void close()
Closes ZIP file.
Definition: quazip.cpp:341
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:483
@ 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:626
void setComment(const QString &comment)
Sets the global comment in the ZIP file.
Definition: quazip.cpp:658
~QuaZip()
Destroys QuaZip object.
Definition: quazip.cpp:228