QGIS API Documentation 3.28.0-Firenze (ed3ad0430f)
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
35class 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
121class 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:37
CORE_EXPORT bool zip(const QString &zip, const QStringList &files)
Zip the list of files in the zip file.