QGIS API Documentation  3.37.0-Master (a5b4d9743e8)
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 
34 class 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 
119 class 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.