Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qzipwriter_p.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5#ifndef QZIPWRITER_H
6#define QZIPWRITER_H
7
8#include <QtCore/private/qglobal_p.h>
9
10//
11// W A R N I N G
12// -------------
13//
14// This file is not part of the Qt API. It exists for the convenience
15// of the QZipWriter class. This header file may change from
16// version to version without notice, or even be removed.
17//
18// We mean it.
19//
20
21#include <QtCore/qstring.h>
22#include <QtCore/qfile.h>
23
25
27
28class Q_CORE_EXPORT QZipWriter
29{
30public:
31 explicit QZipWriter(const QString &fileName, QIODevice::OpenMode mode = (QIODevice::WriteOnly | QIODevice::Truncate) );
32
33 explicit QZipWriter(QIODevice *device);
34 ~QZipWriter();
35
36 QIODevice* device() const;
37
38 bool isWritable() const;
39 bool exists() const;
40
41 enum Status {
42 NoError,
43 FileWriteError,
44 FileOpenError,
45 FilePermissionsError,
46 FileError
47 };
48
49 Status status() const;
50
51 enum CompressionPolicy {
52 AlwaysCompress,
53 NeverCompress,
54 AutoCompress
55 };
56
57 void setCompressionPolicy(CompressionPolicy policy);
58 CompressionPolicy compressionPolicy() const;
59
60 void setCreationPermissions(QFile::Permissions permissions);
61 QFile::Permissions creationPermissions() const;
62
63 void addFile(const QString &fileName, const QByteArray &data);
64
65 void addFile(const QString &fileName, QIODevice *device);
66
67 void addDirectory(const QString &dirName);
68
69 void addSymLink(const QString &fileName, const QString &destination);
70
71 void close();
72private:
73 QZipWriterPrivate *d;
74 Q_DISABLE_COPY_MOVE(QZipWriter)
75};
76
77QT_END_NAMESPACE
78
79#endif // QZIPWRITER_H
~QZipPrivate()
Definition qzip.cpp:388
QByteArray comment
Definition qzip.cpp:400
QList< FileHeader > fileHeaders
Definition qzip.cpp:399
QIODevice * device
Definition qzip.cpp:396
uint start_of_directory
Definition qzip.cpp:401
QZipPrivate(QIODevice *device, bool ownDev)
Definition qzip.cpp:383
bool ownDevice
Definition qzip.cpp:397
bool dirtyFileTree
Definition qzip.cpp:398
void scanFiles()
Definition qzip.cpp:520
QZipReaderPrivate(QIODevice *device, bool ownDev)
Definition qzip.cpp:474
\variable QZipReader::FileInfo::filePath The full filepath inside the archive.
void addEntry(EntryType type, const QString &fileName, const QByteArray &contents)
Definition qzip.cpp:609
QFile::Permissions permissions
Definition qzip.cpp:496
QZipWriterPrivate(QIODevice *device, bool ownDev)
Definition qzip.cpp:487
the QZipWriter class provides a way to create a new zip archive.
#define ZIP_VERSION
Definition qzip.cpp:19
static QFile::Permissions modeToPermissions(quint32 mode)
Definition qzip.cpp:186
static void copyUShort(uchar *dest, const uchar *src)
Definition qzip.cpp:61
Q_DECLARE_TYPEINFO(HostOS, Q_PRIMITIVE_TYPE)
static void copyUInt(uchar *dest, const uchar *src)
Definition qzip.cpp:53
CompressionMethod
Definition qzip.cpp:287
@ CompressionMethodBZip2
Definition qzip.cpp:300
@ CompressionMethodJpeg
Definition qzip.cpp:307
@ CompressionMethodReduced1
Definition qzip.cpp:290
@ CompressionMethodReduced4
Definition qzip.cpp:293
@ CompressionMethodTerse
Definition qzip.cpp:304
@ CompressionMethodDeflated
Definition qzip.cpp:296
@ CompressionMethodReduced2
Definition qzip.cpp:291
@ CompressionMethodWzAES
Definition qzip.cpp:310
@ CompressionMethodStored
Definition qzip.cpp:288
@ CompressionMethodReduced3
Definition qzip.cpp:292
@ CompressionMethodReservedTokenizing
Definition qzip.cpp:295
@ CompressionMethodWavPack
Definition qzip.cpp:308
@ CompressionMethodShrunk
Definition qzip.cpp:289
@ CompressionMethodLz77
Definition qzip.cpp:305
@ CompressionMethodDeflated64
Definition qzip.cpp:297
@ CompressionMethodImploded
Definition qzip.cpp:294
@ CompressionMethodPPMd
Definition qzip.cpp:309
@ CompressionMethodLZMA
Definition qzip.cpp:302
@ CompressionMethodPKImploding
Definition qzip.cpp:298
Q_DECLARE_TYPEINFO(FileHeader, Q_RELOCATABLE_TYPE)
static void writeUInt(uchar *data, uint i)
Definition qzip.cpp:39
Q_DECLARE_TYPEINFO(CompressionMethod, Q_PRIMITIVE_TYPE)
static QDateTime readMSDosDate(const uchar *src)
Definition qzip.cpp:234
#define ZDEBUG
Definition qzip.cpp:24
static void writeMSDosDate(uchar *dest, const QDateTime &dt)
Definition qzip.cpp:67
Q_DECLARE_TYPEINFO(CentralFileHeader, Q_PRIMITIVE_TYPE)
static LocalFileHeader toLocalHeader(const CentralFileHeader &ch)
Definition qzip.cpp:504
HostOS
Definition qzip.cpp:251
@ HostFAT
Definition qzip.cpp:252
@ HostOS400
Definition qzip.cpp:270
@ HostVMS
Definition qzip.cpp:254
@ HostVFAT
Definition qzip.cpp:266
@ HostQDOS
Definition qzip.cpp:264
@ HostTandem
Definition qzip.cpp:269
@ HostVM_CMS
Definition qzip.cpp:256
@ HostMac
Definition qzip.cpp:259
@ HostCPM
Definition qzip.cpp:261
@ HostZ_System
Definition qzip.cpp:260
@ HostMVS
Definition qzip.cpp:267
@ HostAcorn
Definition qzip.cpp:265
@ HostTOPS20
Definition qzip.cpp:262
@ HostAtari
Definition qzip.cpp:257
@ HostUnix
Definition qzip.cpp:255
@ HostHPFS
Definition qzip.cpp:258
@ HostBeOS
Definition qzip.cpp:268
@ HostOSX
Definition qzip.cpp:271
@ HostAMIGA
Definition qzip.cpp:253
@ HostNTFS
Definition qzip.cpp:263
Q_DECLARE_TYPEINFO(LocalFileHeader, Q_PRIMITIVE_TYPE)
static quint32 permissionsToMode(QFile::Permissions perms)
Definition qzip.cpp:210
static void writeUShort(uchar *data, ushort i)
Definition qzip.cpp:47
GeneralPurposeFlag
Definition qzip.cpp:275
@ CentralDirectoryEncrypted
Definition qzip.cpp:283
@ AlgTune2
Definition qzip.cpp:278
@ StrongEncrypted
Definition qzip.cpp:281
@ HasDataDescriptor
Definition qzip.cpp:279
@ Utf8Names
Definition qzip.cpp:282
@ PatchedData
Definition qzip.cpp:280
@ Encrypted
Definition qzip.cpp:276
@ AlgTune1
Definition qzip.cpp:277
static int inflate(Bytef *dest, ulong *destLen, const Bytef *source, ulong sourceLen)
Definition qzip.cpp:93
static int deflate(Bytef *dest, ulong *destLen, const Bytef *source, ulong sourceLen)
Definition qzip.cpp:125
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)
Definition qzip.cpp:34
uchar last_mod_file[4]
Definition qzip.cpp:344
uchar crc_32[4]
Definition qzip.cpp:345
uchar version_made[2]
Definition qzip.cpp:340
uchar extra_field_length[2]
Definition qzip.cpp:349
uchar signature[4]
Definition qzip.cpp:339
uchar version_needed[2]
Definition qzip.cpp:341
uchar disk_start[2]
Definition qzip.cpp:351
uchar uncompressed_size[4]
Definition qzip.cpp:347
uchar compressed_size[4]
Definition qzip.cpp:346
uchar internal_file_attributes[2]
Definition qzip.cpp:352
uchar file_name_length[2]
Definition qzip.cpp:348
uchar offset_local_header[4]
Definition qzip.cpp:354
uchar external_file_attributes[4]
Definition qzip.cpp:353
uchar compression_method[2]
Definition qzip.cpp:343
uchar file_comment_length[2]
Definition qzip.cpp:350
uchar general_purpose_bits[2]
Definition qzip.cpp:342
uchar crc_32[4]
Definition qzip.cpp:331
uchar uncompressed_size[4]
Definition qzip.cpp:333
uchar compressed_size[4]
Definition qzip.cpp:332
uchar num_dir_entries_this_disk[2]
Definition qzip.cpp:363
uchar signature[4]
Definition qzip.cpp:360
uchar comment_length[2]
Definition qzip.cpp:367
uchar this_disk[2]
Definition qzip.cpp:361
uchar start_of_directory_disk[2]
Definition qzip.cpp:362
uchar dir_start_offset[4]
Definition qzip.cpp:366
uchar num_dir_entries[2]
Definition qzip.cpp:364
uchar directory_size[4]
Definition qzip.cpp:365
QByteArray extra_field
Definition qzip.cpp:375
QByteArray file_name
Definition qzip.cpp:374
CentralFileHeader h
Definition qzip.cpp:373
QByteArray file_comment
Definition qzip.cpp:376
uchar extra_field_length[2]
Definition qzip.cpp:325
uchar general_purpose_bits[2]
Definition qzip.cpp:318
uchar last_mod_file[4]
Definition qzip.cpp:320
uchar version_needed[2]
Definition qzip.cpp:317
uchar compressed_size[4]
Definition qzip.cpp:322
uchar signature[4]
Definition qzip.cpp:316
uchar crc_32[4]
Definition qzip.cpp:321
uchar uncompressed_size[4]
Definition qzip.cpp:323
uchar file_name_length[2]
Definition qzip.cpp:324
uchar compression_method[2]
Definition qzip.cpp:319