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
24QT_BEGIN_NAMESPACE
25
26class QZipWriterPrivate;
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
80

source code of qtbase/src/corelib/io/qzipwriter_p.h