/**************************************************************************** ** ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtGui module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:COMM$ ** ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** $QT_END_LICENSE$ ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ******************************************************************************/ #ifndef QZIPREADER_H #define QZIPREADER_H #include #include #ifndef QT_NO_TEXTODFWRITER // // W A R N I N G // ------------- // // This file is not part of the Qt API. It exists for the convenience // of the QZipReader class. This header file may change from // version to version without notice, or even be removed. // // We mean it. // #include #include #include QT_BEGIN_NAMESPACE class QZipReaderPrivate; class Q_GUI_EXPORT QZipReader { public: explicit QZipReader(const QString &fileName, QIODevice::OpenMode mode = QIODevice::ReadOnly ); explicit QZipReader(QIODevice *device); ~QZipReader(); QIODevice* device() const; bool isReadable() const; bool exists() const; struct FileInfo { FileInfo() noexcept : isDir(false), isFile(false), isSymLink(false), crc(0), size(0) {} bool isValid() const noexcept { return isDir || isFile || isSymLink; } QString filePath; uint isDir : 1; uint isFile : 1; uint isSymLink : 1; QFile::Permissions permissions; uint crc; qint64 size; QDateTime lastModified; }; QList fileInfoList() const; int count() const; FileInfo entryInfoAt(int index) const; QByteArray fileData(const QString &fileName) const; bool extractAll(const QString &destinationDir) const; enum Status { NoError, FileReadError, FileOpenError, FilePermissionsError, FileError }; Status status() const; void close(); private: QZipReaderPrivate *d; Q_DISABLE_COPY_MOVE(QZipReader) }; Q_DECLARE_TYPEINFO(QZipReader::FileInfo, Q_RELOCATABLE_TYPE); Q_DECLARE_TYPEINFO(QZipReader::Status, Q_PRIMITIVE_TYPE); QT_END_NAMESPACE #endif // QT_NO_TEXTODFWRITER #endif // QZIPREADER_H