QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
qgsarchive.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsarchive.h
3 ----------------
4
5 begin : July 07, 2017
6 copyright : (C) 2017 by Paul Blottiere
8 ***************************************************************************/
9
10/***************************************************************************
11 * *
12 * This program is free software; you can redistribute it and/or modify *
13 * it under the terms of the GNU General Public License as published by *
14 * the Free Software Foundation; either version 2 of the License, or *
15 * (at your option) any later version. *
16 * *
17 ***************************************************************************/
18
19#ifndef QGSARCHIVE_H
20#define QGSARCHIVE_H
21
22#include "qgis_core.h"
23
24#include <QStringList>
25#include <QTemporaryFile>
26#include <QTemporaryDir>
27#include <memory>
28
34class CORE_EXPORT QgsArchive
35{
36 public:
37
41 QgsArchive();
42
46 QgsArchive( const QgsArchive &other );
47
48 QgsArchive &operator=( const QgsArchive &other );
49
53 virtual ~QgsArchive() = default;
54
60 bool zip( const QString &zipFilename );
61
68 virtual bool unzip( const QString &zipFilename );
69
74 void clear();
75
81 void addFile( const QString &filename );
82
88 bool removeFile( const QString &filename );
89
93 QStringList files() const;
94
98 QString dir() const;
99
104 bool exists() const;
105
106 private:
107 // content of the archive
108 QStringList mFiles;
109
110 // used when unzip is performed
111 std::unique_ptr<QTemporaryDir> mDir;
112};
113
119class CORE_EXPORT QgsProjectArchive : public QgsArchive
120{
121 public:
122
130 bool unzip( const QString &zipFilename ) override;
131
135 QString projectFile() const;
136
141 bool clearProjectFile();
142
147 QString auxiliaryStorageFile() const;
148};
149
150#endif
Class allowing to manage the zip/unzip actions.
Definition: qgsarchive.h:35
virtual ~QgsArchive()=default
Destructor.
Class allowing to manage the zip/unzip actions on project file.
Definition: qgsarchive.h:120
CORE_EXPORT bool zip(const QString &zip, const QStringList &files)
Zip the list of files in the zip file.
CORE_EXPORT bool unzip(const QString &zip, const QString &dir, QStringList &files, bool checkConsistency=true)
Unzip a zip file in an output directory.
Definition: qgsziputils.cpp:37
CORE_EXPORT const QStringList files(const QString &zip)
Returns the list of files within a zip file.