Cockatrice 2025-11-30-Development-2.11.0-beta.38
A cross-platform virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
unzip.h
Go to the documentation of this file.
1/****************************************************************************
2** Filename: unzip.h
3** Last updated [dd/mm/yyyy]: 27/03/2011
4**
5** pkzip 2.0 decompression.
6**
7** Some of the code has been inspired by other open source projects,
8** (mainly Info-Zip and Gilles Vollant's minizip).
9** Compression and decompression actually uses the zlib library.
10**
11** Copyright (C) 2007-2012 Angius Fabrizio. All rights reserved.
12**
13** This file is part of the OSDaB project (http://osdab.42cows.org/).
14**
15** This file may be distributed and/or modified under the terms of the
16** GNU General Public License version 2 as published by the Free Software
17** Foundation and appearing in the file LICENSE.GPL included in the
18** packaging of this file.
19**
20** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
21** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
22**
23** See the file LICENSE.GPL that came with this software distribution or
24** visit http://www.gnu.org/copyleft/gpl.html for GPL licensing information.
25**
26**********************************************************************/
27
28#ifndef OSDAB_UNZIP__H
29#define OSDAB_UNZIP__H
30
31#include "zipglobal.h"
32
33#include <QtCore/QDateTime>
34#include <QtCore/QMap>
35#include <QtCore/QtGlobal>
36#include <zlib.h>
37
38class QDir;
39class QFile;
40class QIODevice;
41class QString;
42
44
45class UnzipPrivate;
46
48{
49public:
72
74 {
75 ExtractPaths = 0x0001,
76 SkipPaths = 0x0002,
77 VerifyOnly = 0x0004,
79 };
80 Q_DECLARE_FLAGS(ExtractionOptions, ExtractionOption)
81
88
90 {
93 };
94
95 struct ZipEntry
96 {
97 ZipEntry();
98
99 QString filename;
100 QString comment;
101
104 quint32 crc32;
105
106 QDateTime lastModified;
107
110
112 };
113
114 UnZip();
115 virtual ~UnZip();
116
117 bool isOpen() const;
118
119 ErrorCode openArchive(const QString &filename);
120 ErrorCode openArchive(QIODevice *device);
121 void closeArchive();
122
123 QString archiveComment() const;
124
125 QString formatError(UnZip::ErrorCode c) const;
126
127 bool contains(const QString &file) const;
128
129 QStringList fileList() const;
130 QList<ZipEntry> entryList() const;
131
133
134 ErrorCode extractAll(const QString &dirname, ExtractionOptions options = ExtractPaths);
135 ErrorCode extractAll(const QDir &dir, ExtractionOptions options = ExtractPaths);
136
137 ErrorCode extractFile(const QString &filename, const QString &dirname, ExtractionOptions options = ExtractPaths);
138 ErrorCode extractFile(const QString &filename, const QDir &dir, ExtractionOptions options = ExtractPaths);
139 ErrorCode extractFile(const QString &filename, QIODevice *device, ExtractionOptions options = ExtractPaths);
140
142 extractFiles(const QStringList &filenames, const QString &dirname, ExtractionOptions options = ExtractPaths);
143 ErrorCode extractFiles(const QStringList &filenames, const QDir &dir, ExtractionOptions options = ExtractPaths);
144
145 void setPassword(const QString &pwd);
146
147private:
149};
150
151Q_DECLARE_OPERATORS_FOR_FLAGS(UnZip::ExtractionOptions)
152
154
155#endif // OSDAB_UNZIP__H
ErrorCode extractAll(const QString &dirname, ExtractionOptions options=ExtractPaths)
Definition unzip.cpp:1259
QList< ZipEntry > entryList() const
Definition unzip.cpp:1216
bool contains(const QString &file) const
Definition unzip.cpp:1200
ErrorCode openArchive(const QString &filename)
Definition unzip.cpp:1116
ErrorCode extractFile(const QString &filename, const QString &dirname, ExtractionOptions options=ExtractPaths)
Definition unzip.cpp:1321
ErrorCode
Definition unzip.h:51
@ FileNotFound
Definition unzip.h:60
@ HeaderConsistencyError
Definition unzip.h:67
@ Skip
Definition unzip.h:69
@ CreateDirFailed
Definition unzip.h:64
@ WriteFailed
Definition unzip.h:62
@ InvalidArchive
Definition unzip.h:66
@ WrongPassword
Definition unzip.h:58
@ ZlibError
Definition unzip.h:54
@ OpenFailed
Definition unzip.h:55
@ InvalidDevice
Definition unzip.h:65
@ ZlibInit
Definition unzip.h:53
@ PartiallyCorrupted
Definition unzip.h:56
@ SkipAll
Definition unzip.h:70
@ ReadFailed
Definition unzip.h:61
@ Ok
Definition unzip.h:52
@ SeekFailed
Definition unzip.h:63
@ NoOpenArchive
Definition unzip.h:59
@ Corrupted
Definition unzip.h:57
QString formatError(UnZip::ErrorCode c) const
Definition unzip.cpp:1171
UnZip()
Definition unzip.cpp:1092
UnzipPrivate * d
Definition unzip.h:148
bool isOpen() const
Definition unzip.cpp:1108
void closeArchive()
Definition unzip.cpp:1158
QStringList fileList() const
Definition unzip.cpp:1208
ErrorCode verifyArchive()
Definition unzip.cpp:1251
ExtractionOption
Definition unzip.h:74
@ NoSilentDirectoryCreation
Definition unzip.h:78
@ SkipPaths
Definition unzip.h:76
@ ExtractPaths
Definition unzip.h:75
@ VerifyOnly
Definition unzip.h:77
CompressionMethod
Definition unzip.h:83
@ NoCompression
Definition unzip.h:84
@ UnknownCompression
Definition unzip.h:86
@ Deflated
Definition unzip.h:85
void setPassword(const QString &pwd)
Definition unzip.cpp:1420
ErrorCode extractFiles(const QStringList &filenames, const QString &dirname, ExtractionOptions options=ExtractPaths)
Definition unzip.cpp:1372
QString archiveComment() const
Definition unzip.cpp:1163
FileType
Definition unzip.h:90
@ File
Definition unzip.h:91
@ Directory
Definition unzip.h:92
Definition unzip_p.h:55
Zip file compression.
Definition zip.h:49
quint32 uncompressedSize
Definition unzip.h:103
QDateTime lastModified
Definition unzip.h:106
bool encrypted
Definition unzip.h:111
ZipEntry()
Definition unzip.cpp:148
FileType type
Definition unzip.h:109
QString comment
Definition unzip.h:100
quint32 compressedSize
Definition unzip.h:102
quint32 crc32
Definition unzip.h:104
CompressionMethod compression
Definition unzip.h:108
QString filename
Definition unzip.h:99
#define OSDAB_ZIP_EXPORT
Definition zipglobal.h:42
#define OSDAB_END_NAMESPACE
Definition zipglobal.h:60
#define OSDAB_BEGIN_NAMESPACE(ModuleName)
Definition zipglobal.h:54