-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathunzipfile.h
More file actions
55 lines (49 loc) · 1.26 KB
/
unzipfile.h
File metadata and controls
55 lines (49 loc) · 1.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#ifndef UNZIPFILE_H
#define UNZIPFILE_H
#include <QFile>
#include <QHash>
#include <QMetaType>
#include <QByteArray>
#include <QSharedData>
#include "utilsexport.h"
#include <thirdparty/minizip/unzip.h>
class UnzipFileData :
public QSharedData
{
public:
UnzipFileData();
UnzipFileData(const UnzipFileData &AOther);
~UnzipFileData();
public:
struct ZippedFile {
QString name;
unsigned long size;
QByteArray data;
};
public:
bool FFilesReaded;
unzFile FUNZFile;
QString FZipFileName;
QHash<QString,ZippedFile *> FZippedFiles;
};
class UTILS_EXPORT UnzipFile
{
public:
UnzipFile();
UnzipFile(const QString &AZipFileName, bool AReadFiles = false);
~UnzipFile();
bool isValid() const;
const QString &zipFileName() const;
bool openFile(const QString &AZipFileName, bool AReadFiles = false);
QList<QString> fileNames() const;
unsigned long fileSize(const QString &AFileName) const;
QByteArray fileData(const QString &AFileName) const;
protected:
bool loadZippedFilesInfo(bool AReadFiles);
QByteArray loadZippedFileData(const QString &AFileName) const;
private:
QSharedDataPointer<UnzipFileData> d;
};
Q_DECLARE_METATYPE(UnzipFile);
#define UNZIPFILE_METATYPE_ID qMetaTypeId<UnzipFile>()
#endif // UNZIPFILE_H