FFSM++ 1.1.0
French Forest Sector Model ++
Loading...
Searching...
No Matches
unzip.h
Go to the documentation of this file.
1/****************************************************************************
2** Filename: unzip.h
3** Last updated [dd/mm/yyyy]: 28/01/2007
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 Angius Fabrizio. All rights reserved.
12**
13** This file is part of the OSDaB project (http://osdab.sourceforge.net/).
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 <QtGlobal>
32#include <QMap>
33#include <QDateTime>
34
35#include <zlib.h>
36
37class UnzipPrivate;
38class QIODevice;
39class QFile;
40class QDir;
41class QStringList;
42class QString;
43
44
45class UnZip
46{
47public:
69
71 {
72 //! Extracts paths (default)
73 ExtractPaths = 0x0001,
74 //! Ignores paths and extracts all the files to the same directory
75 SkipPaths = 0x0002
76 };
77 Q_DECLARE_FLAGS(ExtractionOptions, ExtractionOption)
78
83
88
89 typedef struct ZipEntry
90 {
91 ZipEntry();
92
93 QString filename;
94 QString comment;
95
98 quint32 crc32;
99
100 QDateTime lastModified;
101
104
106 };
107
108 UnZip();
109 virtual ~UnZip();
110
111 bool isOpen() const;
112
113 ErrorCode openArchive(const QString& filename);
114 ErrorCode openArchive(QIODevice* device);
115 void closeArchive();
116
117 QString archiveComment() const;
118
119 QString formatError(UnZip::ErrorCode c) const;
120
121 bool contains(const QString& file) const;
122
123 QStringList fileList() const;
124 QList<ZipEntry> entryList() const;
125
126 ErrorCode extractAll(const QString& dirname, ExtractionOptions options = ExtractPaths);
127 ErrorCode extractAll(const QDir& dir, ExtractionOptions options = ExtractPaths);
128
129 ErrorCode extractFile(const QString& filename, const QString& dirname, ExtractionOptions options = ExtractPaths);
130 ErrorCode extractFile(const QString& filename, const QDir& dir, ExtractionOptions options = ExtractPaths);
131 ErrorCode extractFile(const QString& filename, QIODevice* device, ExtractionOptions options = ExtractPaths);
132
133 ErrorCode extractFiles(const QStringList& filenames, const QString& dirname, ExtractionOptions options = ExtractPaths);
134 ErrorCode extractFiles(const QStringList& filenames, const QDir& dir, ExtractionOptions options = ExtractPaths);
135
136 void setPassword(const QString& pwd);
137
138private:
140};
141
142Q_DECLARE_OPERATORS_FOR_FLAGS(UnZip::ExtractionOptions)
143
144#endif // OSDAB_UNZIP__H
PKZip 2.0 file decompression. Compatibility with later versions is not ensured as they may use unsupp...
Definition unzip.h:46
bool isOpen() const
Definition unzip.cpp:182
QStringList fileList() const
Definition unzip.cpp:281
FileType
Definition unzip.h:85
@ Directory
Definition unzip.h:86
@ File
Definition unzip.h:86
CompressionMethod
Definition unzip.h:80
@ NoCompression
Definition unzip.h:81
@ Deflated
Definition unzip.h:81
@ UnknownCompression
Definition unzip.h:81
void setPassword(const QString &pwd)
Definition unzip.cpp:463
void closeArchive()
Definition unzip.cpp:226
virtual ~UnZip()
Definition unzip.cpp:173
ErrorCode openArchive(const QString &filename)
Definition unzip.cpp:190
QString formatError(UnZip::ErrorCode c) const
Definition unzip.cpp:241
QList< ZipEntry > entryList() const
Definition unzip.cpp:289
UnZip()
Definition unzip.cpp:165
ErrorCode
Definition unzip.h:49
@ OpenFailed
Definition unzip.h:53
@ ZlibError
Definition unzip.h:52
@ Ok
Definition unzip.h:50
@ NoOpenArchive
Definition unzip.h:57
@ ReadFailed
Definition unzip.h:59
@ SeekFailed
Definition unzip.h:61
@ FileNotFound
Definition unzip.h:58
@ HeaderConsistencyError
Definition unzip.h:65
@ WrongPassword
Definition unzip.h:56
@ InvalidDevice
Definition unzip.h:63
@ Skip
Definition unzip.h:67
@ Corrupted
Definition unzip.h:55
@ SkipAll
Definition unzip.h:67
@ WriteFailed
Definition unzip.h:60
@ ZlibInit
Definition unzip.h:51
@ CreateDirFailed
Definition unzip.h:62
@ PartiallyCorrupted
Definition unzip.h:54
@ InvalidArchive
Definition unzip.h:64
ExtractionOption
Definition unzip.h:71
@ SkipPaths
Ignores paths and extracts all the files to the same directory.
Definition unzip.h:75
@ ExtractPaths
Extracts paths (default)
Definition unzip.h:73
ErrorCode extractAll(const QString &dirname, ExtractionOptions options=ExtractPaths)
Definition unzip.cpp:325
ErrorCode extractFile(const QString &filename, const QString &dirname, ExtractionOptions options=ExtractPaths)
Definition unzip.cpp:380
ErrorCode extractFiles(const QStringList &filenames, const QString &dirname, ExtractionOptions options=ExtractPaths)
Definition unzip.cpp:423
UnzipPrivate * d
Definition unzip.h:139
QString archiveComment() const
Definition unzip.cpp:231
bool contains(const QString &file) const
Definition unzip.cpp:270
quint32 uncompressedSize
Definition unzip.h:97
QString comment
Definition unzip.h:94
quint32 crc32
Definition unzip.h:98
FileType type
Definition unzip.h:103
bool encrypted
Definition unzip.h:105
CompressionMethod compression
Definition unzip.h:102
quint32 compressedSize
Definition unzip.h:96
QString filename
Definition unzip.h:93
QDateTime lastModified
Definition unzip.h:100