QuaZIP: quazip/quazip.h Source File

QuaZIP quazip-0-7-1

- Main Page
- Related Pages
- Classes
- Files
- Directories

- File List

quazip.h

    00001 #ifndef QUA_ZIP_H
    00002 #define QUA_ZIP_H
    00003
    00004 /*
    00005 Copyright (C) 2005-2014 Sergey A. Tachenov
    00006
    00007 This file is part of QuaZIP.
    00008
    00009 QuaZIP is free software: you can redistribute it and/or modify
    00010 it under the terms of the GNU Lesser General Public License as published by
    00011 the Free Software Foundation, either version 2.1 of the License, or
    00012 (at your option) any later version.
    00013
    00014 QuaZIP is distributed in the hope that it will be useful,
    00015 but WITHOUT ANY WARRANTY; without even the implied warranty of
    00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    00017 GNU Lesser General Public License for more details.
    00018
    00019 You should have received a copy of the GNU Lesser General Public License
    00020 along with QuaZIP.  If not, see <http://www.gnu.org/licenses/>.
    00021
    00022 See COPYING file for the full LGPL text.
    00023
    00024 Original ZIP package is copyrighted by Gilles Vollant, see
    00025 quazip/(un)zip.h files for details, basically it's zlib license.
    00026  **/
    00027
    00028 #include <QString>
    00029 #include <QStringList>
    00030 #include <QTextCodec>
    00031
    00032 #include "zip.h"
    00033 #include "unzip.h"
    00034
    00035 #include "quazip_global.h"
    00036 #include "quazipfileinfo.h"
    00037
    00038 // just in case it will be defined in the later versions of the ZIP/UNZIP
    00039 #ifndef UNZ_OPENERROR
    00040 // define additional error code
    00041 #define UNZ_OPENERROR -1000
    00042 #endif
    00043
    00044 class QuaZipPrivate;
    00045
    00047
    00084 class QUAZIP_EXPORT QuaZip {
    00085   friend class QuaZipPrivate;
    00086   public:
    00088     enum Constants {
    00089       MAX_FILE_NAME_LENGTH=256
    00092     };
    00094     enum Mode {
    00095       mdNotOpen,
    00096       mdUnzip,
    00097       mdCreate,
    00098       mdAppend,
    00106       mdAdd
    00107     };
    00109
    00114     enum CaseSensitivity {
    00115       csDefault=0,
    00116       csSensitive=1,
    00117       csInsensitive=2
    00118     };
    00120
    00126     static Qt::CaseSensitivity convertCaseSensitivity(
    00127             CaseSensitivity cs);
    00128   private:
    00129     QuaZipPrivate *p;
    00130     // not (and will not be) implemented
    00131     QuaZip(const QuaZip& that);
    00132     // not (and will not be) implemented
    00133     QuaZip& operator=(const QuaZip& that);
    00134   public:
    00136
    00137     QuaZip();
    00139     QuaZip(const QString& zipName);
    00141
    00142     QuaZip(QIODevice *ioDevice);
    00144
    00145     ~QuaZip();
    00147
    00193     bool open(Mode mode, zlib_filefunc_def *ioApi =NULL);
    00195
    00217     void close();
    00219
    00224     void setFileNameCodec(QTextCodec *fileNameCodec);
    00226
    00229     void setFileNameCodec(const char *fileNameCodecName);
    00231     QTextCodec* getFileNameCodec() const;
    00233
    00235     void setCommentCodec(QTextCodec *commentCodec);
    00237
    00240     void setCommentCodec(const char *commentCodecName);
    00242     QTextCodec* getCommentCodec() const;
    00244
    00249     QString getZipName() const;
    00251
    00256     void setZipName(const QString& zipName);
    00258
    00262     QIODevice *getIoDevice() const;
    00264
    00269     void setIoDevice(QIODevice *ioDevice);
    00271     Mode getMode() const;
    00273     bool isOpen() const;
    00275
    00283     int getZipError() const;
    00285
    00288     int getEntriesCount() const;
    00290     QString getComment() const;
    00292
    00300     void setComment(const QString& comment);
    00302
    00305     bool goToFirstFile();
    00307
    00324     bool goToNextFile();
    00326
    00350     bool setCurrentFile(const QString& fileName, CaseSensitivity cs =csDefault);
    00352     bool hasCurrentFile() const;
    00354
    00375     bool getCurrentFileInfo(QuaZipFileInfo* info)const;
    00377
    00385     bool getCurrentFileInfo(QuaZipFileInfo64* info)const;
    00387
    00393     QString getCurrentFileName()const;
    00395
    00410     unzFile getUnzFile();
    00412
    00416     zipFile getZipFile();
    00418
    00445     void setDataDescriptorWritingEnabled(bool enabled);
    00447
    00450     bool isDataDescriptorWritingEnabled() const;
    00452
    00458     QStringList getFileNameList() const;
    00460
    00472     QList<QuaZipFileInfo> getFileInfoList() const;
    00474
    00482     QList<QuaZipFileInfo64> getFileInfoList64() const;
    00484
    00497     void setZip64Enabled(bool zip64);
    00499
    00504     bool isZip64Enabled() const;
    00506
    00509     bool isAutoClose() const;
    00511
    00531     void setAutoClose(bool autoClose) const;
    00533
    00562     static void setDefaultFileNameCodec(QTextCodec *codec);
    00568     static void setDefaultFileNameCodec(const char *codecName);
    00569 };
    00570
    00571 #endif