8#include <QtCore/private/qglobal_p.h>
21#include <QtCore/qdatetime.h>
22#include <QtCore/qfile.h>
23#include <QtCore/qstring.h>
27class QZipReaderPrivate;
32 explicit QZipReader(
const QString &fileName, QIODevice::OpenMode mode = QIODevice::ReadOnly );
34 explicit QZipReader(QIODevice *device);
37 QIODevice* device()
const;
39 bool isReadable()
const;
45 : isDir(
false), isFile(
false), isSymLink(
false), crc(0), size(0)
48 bool isValid()
const noexcept {
return isDir || isFile || isSymLink; }
54 QFile::Permissions permissions;
57 QDateTime lastModified;
60 QList<FileInfo> fileInfoList()
const;
63 FileInfo entryInfoAt(
int index)
const;
64 QByteArray fileData(
const QString &fileName)
const;
65 bool extractAll(
const QString &destinationDir)
const;
75 Status status()
const;
81 Q_DISABLE_COPY_MOVE(QZipReader)
83Q_DECLARE_TYPEINFO(QZipReader::FileInfo, Q_RELOCATABLE_TYPE);
84Q_DECLARE_TYPEINFO(QZipReader::Status, Q_PRIMITIVE_TYPE);
QList< FileHeader > fileHeaders
QZipPrivate(QIODevice *device, bool ownDev)
QZipReaderPrivate(QIODevice *device, bool ownDev)
\variable QZipReader::FileInfo::filePath The full filepath inside the archive.
void addEntry(EntryType type, const QString &fileName, const QByteArray &contents)
QFile::Permissions permissions
QZipWriterPrivate(QIODevice *device, bool ownDev)
static QFile::Permissions modeToPermissions(quint32 mode)
static void copyUShort(uchar *dest, const uchar *src)
Q_DECLARE_TYPEINFO(HostOS, Q_PRIMITIVE_TYPE)
static void copyUInt(uchar *dest, const uchar *src)
@ CompressionMethodReduced1
@ CompressionMethodReduced4
@ CompressionMethodDeflated
@ CompressionMethodReduced2
@ CompressionMethodStored
@ CompressionMethodReduced3
@ CompressionMethodReservedTokenizing
@ CompressionMethodWavPack
@ CompressionMethodShrunk
@ CompressionMethodDeflated64
@ CompressionMethodImploded
@ CompressionMethodPKImploding
Q_DECLARE_TYPEINFO(FileHeader, Q_RELOCATABLE_TYPE)
static void writeUInt(uchar *data, uint i)
Q_DECLARE_TYPEINFO(CompressionMethod, Q_PRIMITIVE_TYPE)
static QDateTime readMSDosDate(const uchar *src)
static void writeMSDosDate(uchar *dest, const QDateTime &dt)
Q_DECLARE_TYPEINFO(CentralFileHeader, Q_PRIMITIVE_TYPE)
static LocalFileHeader toLocalHeader(const CentralFileHeader &ch)
Q_DECLARE_TYPEINFO(LocalFileHeader, Q_PRIMITIVE_TYPE)
static quint32 permissionsToMode(QFile::Permissions perms)
static void writeUShort(uchar *data, ushort i)
@ CentralDirectoryEncrypted
static int inflate(Bytef *dest, ulong *destLen, const Bytef *source, ulong sourceLen)
static int deflate(Bytef *dest, ulong *destLen, const Bytef *source, ulong sourceLen)
Q_DECLARE_TYPEINFO(DataDescriptor, Q_PRIMITIVE_TYPE)
Q_DECLARE_TYPEINFO(EndOfDirectory, Q_PRIMITIVE_TYPE)
Q_DECLARE_TYPEINFO(GeneralPurposeFlag, Q_PRIMITIVE_TYPE)
static ushort readUShort(const uchar *data)
uchar uncompressed_size[4]
uchar num_dir_entries_this_disk[2]
uchar start_of_directory_disk[2]
uchar dir_start_offset[4]