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
37
class
UnzipPrivate
;
38
class
QIODevice;
39
class
QFile;
40
class
QDir;
41
class
QStringList;
42
class
QString;
43
44
45
class
UnZip
46
{
47
public
:
48
enum
ErrorCode
49
{
50
Ok
,
51
ZlibInit
,
52
ZlibError
,
53
OpenFailed
,
54
PartiallyCorrupted
,
55
Corrupted
,
56
WrongPassword
,
57
NoOpenArchive
,
58
FileNotFound
,
59
ReadFailed
,
60
WriteFailed
,
61
SeekFailed
,
62
CreateDirFailed
,
63
InvalidDevice
,
64
InvalidArchive
,
65
HeaderConsistencyError
,
66
67
Skip
,
SkipAll
// internal use only
68
};
69
70
enum
ExtractionOption
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
79
enum
CompressionMethod
80
{
81
NoCompression
,
Deflated
,
UnknownCompression
82
};
83
84
enum
FileType
85
{
86
File
,
Directory
87
};
88
89
typedef
struct
ZipEntry
90
{
91
ZipEntry
();
92
93
QString
filename
;
94
QString
comment
;
95
96
quint32
compressedSize
;
97
quint32
uncompressedSize
;
98
quint32
crc32
;
99
100
QDateTime
lastModified
;
101
102
CompressionMethod
compression
;
103
FileType
type
;
104
105
bool
encrypted
;
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
138
private
:
139
UnzipPrivate
*
d
;
140
};
141
142
Q_DECLARE_OPERATORS_FOR_FLAGS(UnZip::ExtractionOptions)
143
144
#endif
// OSDAB_UNZIP__H
UnZip
PKZip 2.0 file decompression. Compatibility with later versions is not ensured as they may use unsupp...
Definition
unzip.h:46
UnZip::isOpen
bool isOpen() const
Definition
unzip.cpp:182
UnZip::fileList
QStringList fileList() const
Definition
unzip.cpp:281
UnZip::FileType
FileType
Definition
unzip.h:85
UnZip::Directory
@ Directory
Definition
unzip.h:86
UnZip::File
@ File
Definition
unzip.h:86
UnZip::CompressionMethod
CompressionMethod
Definition
unzip.h:80
UnZip::NoCompression
@ NoCompression
Definition
unzip.h:81
UnZip::Deflated
@ Deflated
Definition
unzip.h:81
UnZip::UnknownCompression
@ UnknownCompression
Definition
unzip.h:81
UnZip::setPassword
void setPassword(const QString &pwd)
Definition
unzip.cpp:463
UnZip::closeArchive
void closeArchive()
Definition
unzip.cpp:226
UnZip::~UnZip
virtual ~UnZip()
Definition
unzip.cpp:173
UnZip::openArchive
ErrorCode openArchive(const QString &filename)
Definition
unzip.cpp:190
UnZip::formatError
QString formatError(UnZip::ErrorCode c) const
Definition
unzip.cpp:241
UnZip::entryList
QList< ZipEntry > entryList() const
Definition
unzip.cpp:289
UnZip::UnZip
UnZip()
Definition
unzip.cpp:165
UnZip::ErrorCode
ErrorCode
Definition
unzip.h:49
UnZip::OpenFailed
@ OpenFailed
Definition
unzip.h:53
UnZip::ZlibError
@ ZlibError
Definition
unzip.h:52
UnZip::Ok
@ Ok
Definition
unzip.h:50
UnZip::NoOpenArchive
@ NoOpenArchive
Definition
unzip.h:57
UnZip::ReadFailed
@ ReadFailed
Definition
unzip.h:59
UnZip::SeekFailed
@ SeekFailed
Definition
unzip.h:61
UnZip::FileNotFound
@ FileNotFound
Definition
unzip.h:58
UnZip::HeaderConsistencyError
@ HeaderConsistencyError
Definition
unzip.h:65
UnZip::WrongPassword
@ WrongPassword
Definition
unzip.h:56
UnZip::InvalidDevice
@ InvalidDevice
Definition
unzip.h:63
UnZip::Skip
@ Skip
Definition
unzip.h:67
UnZip::Corrupted
@ Corrupted
Definition
unzip.h:55
UnZip::SkipAll
@ SkipAll
Definition
unzip.h:67
UnZip::WriteFailed
@ WriteFailed
Definition
unzip.h:60
UnZip::ZlibInit
@ ZlibInit
Definition
unzip.h:51
UnZip::CreateDirFailed
@ CreateDirFailed
Definition
unzip.h:62
UnZip::PartiallyCorrupted
@ PartiallyCorrupted
Definition
unzip.h:54
UnZip::InvalidArchive
@ InvalidArchive
Definition
unzip.h:64
UnZip::ExtractionOption
ExtractionOption
Definition
unzip.h:71
UnZip::SkipPaths
@ SkipPaths
Ignores paths and extracts all the files to the same directory.
Definition
unzip.h:75
UnZip::ExtractPaths
@ ExtractPaths
Extracts paths (default)
Definition
unzip.h:73
UnZip::extractAll
ErrorCode extractAll(const QString &dirname, ExtractionOptions options=ExtractPaths)
Definition
unzip.cpp:325
UnZip::extractFile
ErrorCode extractFile(const QString &filename, const QString &dirname, ExtractionOptions options=ExtractPaths)
Definition
unzip.cpp:380
UnZip::extractFiles
ErrorCode extractFiles(const QStringList &filenames, const QString &dirname, ExtractionOptions options=ExtractPaths)
Definition
unzip.cpp:423
UnZip::d
UnzipPrivate * d
Definition
unzip.h:139
UnZip::archiveComment
QString archiveComment() const
Definition
unzip.cpp:231
UnZip::contains
bool contains(const QString &file) const
Definition
unzip.cpp:270
UnzipPrivate
Definition
unzip_p.h:52
UnZip::ZipEntry
Definition
unzip.h:90
UnZip::ZipEntry::uncompressedSize
quint32 uncompressedSize
Definition
unzip.h:97
UnZip::ZipEntry::comment
QString comment
Definition
unzip.h:94
UnZip::ZipEntry::crc32
quint32 crc32
Definition
unzip.h:98
UnZip::ZipEntry::type
FileType type
Definition
unzip.h:103
UnZip::ZipEntry::encrypted
bool encrypted
Definition
unzip.h:105
UnZip::ZipEntry::compression
CompressionMethod compression
Definition
unzip.h:102
UnZip::ZipEntry::compressedSize
quint32 compressedSize
Definition
unzip.h:96
UnZip::ZipEntry::filename
QString filename
Definition
unzip.h:93
UnZip::ZipEntry::ZipEntry
ZipEntry()
Definition
unzip.cpp:471
UnZip::ZipEntry::lastModified
QDateTime lastModified
Definition
unzip.h:100