QGIS API Documentation  3.21.0-Master (909859188c)
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
7  email : [email protected]
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 
35 class CORE_EXPORT QgsArchive
36 {
37  public:
38 
42  QgsArchive();
43 
47  QgsArchive( const QgsArchive &other );
48 
49  QgsArchive &operator=( const QgsArchive &other );
50 
54  virtual ~QgsArchive() = default;
55 
61  bool zip( const QString &zipFilename );
62 
69  virtual bool unzip( const QString &zipFilename );
70 
75  void clear();
76 
82  void addFile( const QString &filename );
83 
89  bool removeFile( const QString &filename );
90 
94  QStringList files() const;
95 
99  QString dir() const;
100 
105  bool exists() const;
106 
107  private:
108  // content of the archive
109  QStringList mFiles;
110 
111  // used when unzip is performed
112  std::unique_ptr<QTemporaryDir> mDir;
113 };
114 
121 class CORE_EXPORT QgsProjectArchive : public QgsArchive
122 {
123  public:
124 
132  bool unzip( const QString &zipFilename ) override;
133 
137  QString projectFile() const;
138 
143  bool clearProjectFile();
144 
149  QString auxiliaryStorageFile() const;
150 };
151 
152 #endif
Class allowing to manage the zip/unzip actions.
Definition: qgsarchive.h:36
virtual ~QgsArchive()=default
Destructor.
Class allowing to manage the zip/unzip actions on project file.
Definition: qgsarchive.h:122
CORE_EXPORT bool unzip(const QString &zip, const QString &dir, QStringList &files)
Unzip a zip file in an output directory.
Definition: qgsziputils.cpp:34
CORE_EXPORT bool zip(const QString &zip, const QStringList &files)
Zip the list of files in the zip file.