5752
|
1 |
#ifndef QUA_ZIPNEWINFO_H
|
|
2 |
#define QUA_ZIPNEWINFO_H
|
|
3 |
|
|
4 |
/*
|
|
5 |
Copyright (C) 2005-2011 Sergey A. Tachenov
|
|
6 |
|
|
7 |
This program is free software; you can redistribute it and/or modify it
|
|
8 |
under the terms of the GNU Lesser General Public License as published by
|
|
9 |
the Free Software Foundation; either version 2 of the License, or (at
|
|
10 |
your option) any later version.
|
|
11 |
|
|
12 |
This program is distributed in the hope that it will be useful, but
|
|
13 |
WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
|
|
15 |
General Public License for more details.
|
|
16 |
|
|
17 |
You should have received a copy of the GNU Lesser General Public License
|
|
18 |
along with this program; if not, write to the Free Software Foundation,
|
|
19 |
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
20 |
|
|
21 |
See COPYING file for the full LGPL text.
|
|
22 |
|
|
23 |
Original ZIP package is copyrighted by Gilles Vollant, see
|
|
24 |
quazip/(un)zip.h files for details, basically it's zlib license.
|
|
25 |
**/
|
|
26 |
|
|
27 |
#include <QDateTime>
|
|
28 |
#include <QString>
|
|
29 |
|
|
30 |
#include "quazip_global.h"
|
|
31 |
|
|
32 |
/// Information about a file to be created.
|
|
33 |
/** This structure holds information about a file to be created inside
|
|
34 |
* ZIP archive. At least name should be set to something correct before
|
|
35 |
* passing this structure to
|
|
36 |
* QuaZipFile::open(OpenMode,const QuaZipNewInfo&,int,int,bool).
|
|
37 |
**/
|
|
38 |
struct QUAZIP_EXPORT QuaZipNewInfo {
|
|
39 |
/// File name.
|
|
40 |
/** This field holds file name inside archive, including path relative
|
|
41 |
* to archive root.
|
|
42 |
**/
|
|
43 |
QString name;
|
|
44 |
/// File timestamp.
|
|
45 |
/** This is the last file modification date and time. Will be stored
|
|
46 |
* in the archive central directory. It is a good practice to set it
|
|
47 |
* to the source file timestamp instead of archive creating time. Use
|
|
48 |
* setFileDateTime() or QuaZipNewInfo(const QString&, const QString&).
|
|
49 |
**/
|
|
50 |
QDateTime dateTime;
|
|
51 |
/// File internal attributes.
|
|
52 |
quint16 internalAttr;
|
|
53 |
/// File external attributes.
|
|
54 |
quint32 externalAttr;
|
|
55 |
/// File comment.
|
|
56 |
/** Will be encoded using QuaZip::getCommentCodec().
|
|
57 |
**/
|
|
58 |
QString comment;
|
|
59 |
/// File local extra field.
|
|
60 |
QByteArray extraLocal;
|
|
61 |
/// File global extra field.
|
|
62 |
QByteArray extraGlobal;
|
|
63 |
/// Uncompressed file size.
|
|
64 |
/** This is only needed if you are using raw file zipping mode, i. e.
|
|
65 |
* adding precompressed file in the zip archive.
|
|
66 |
**/
|
|
67 |
ulong uncompressedSize;
|
|
68 |
/// Constructs QuaZipNewInfo instance.
|
|
69 |
/** Initializes name with \a name, dateTime with current date and
|
|
70 |
* time. Attributes are initialized with zeros, comment and extra
|
|
71 |
* field with null values.
|
|
72 |
**/
|
|
73 |
QuaZipNewInfo(const QString& name);
|
|
74 |
/// Constructs QuaZipNewInfo instance.
|
|
75 |
/** Initializes name with \a name and dateTime with timestamp of the
|
|
76 |
* file named \a file. If the \a file does not exists or its timestamp
|
|
77 |
* is inaccessible (e. g. you do not have read permission for the
|
|
78 |
* directory file in), uses current date and time. Attributes are
|
|
79 |
* initialized with zeros, comment and extra field with null values.
|
|
80 |
*
|
|
81 |
* \sa setFileDateTime()
|
|
82 |
**/
|
|
83 |
QuaZipNewInfo(const QString& name, const QString& file);
|
|
84 |
/// Sets the file timestamp from the existing file.
|
|
85 |
/** Use this function to set the file timestamp from the existing
|
|
86 |
* file. Use it like this:
|
|
87 |
* \code
|
|
88 |
* QuaZipFile zipFile(&zip);
|
|
89 |
* QFile file("file-to-add");
|
|
90 |
* file.open(QIODevice::ReadOnly);
|
|
91 |
* QuaZipNewInfo info("file-name-in-archive");
|
|
92 |
* info.setFileDateTime("file-to-add"); // take the timestamp from file
|
|
93 |
* zipFile.open(QIODevice::WriteOnly, info);
|
|
94 |
* \endcode
|
|
95 |
*
|
|
96 |
* This function does not change dateTime if some error occured (e. g.
|
|
97 |
* file is inaccessible).
|
|
98 |
**/
|
|
99 |
void setFileDateTime(const QString& file);
|
|
100 |
};
|
|
101 |
|
|
102 |
#endif
|