22 #ifndef LOCALFILEHEADER_H 23 #define LOCALFILEHEADER_H 25 #include "zipglobal.h" 26 #include "ExtraFields.h" 27 #include <ZipFileInfo.h> 34 #define VERSION_MADE_BY MAKESHORT(20, getOsMadeBy() ) // Version 2.0 and sys compat 0 for now 35 #define VERSION_NEEDED 20 // version 2.0 (default) 36 #define VERSION_NEEDED_ZIP64 45 39 #define LOCAL_FILE_HEADER_SIZE 30 40 #define LOCAL_FILE_HEADER_SIGNATURE 0x04034b50 42 #define DATA_DESCRIPTOR_SIZE 16 43 #define DATA_DESCRIPTOR_SIGNATURE 0x08074b50 45 #define ZIP_IS_ENCRYPTED 0x01 // bit 0 46 #define ZIP_IS_STRONG_ENCRYPTION 0x40 // bit 6 47 #define ZIP_WRITE_DATA_DESCRIPTOR 0x08 // bit 3 48 #define ZIP_IS_UTF8 0x0800 // Bit 11 62 virtual void initFromFile(
const QFileInfo& file );
65 virtual bool read(QIODevice* ioDevice);
66 void readExtraData(QIODevice* ioDevice);
67 virtual qint64 write(QIODevice* ioDevice );
68 void checkForExtraData( );
70 virtual quint32 size() {
return LOCAL_FILE_HEADER_SIZE + fileName.size() + extraField.size(); }
71 virtual void setSizes( qint64 uncompSize, qint64 compSize, qint64 offset);
73 virtual quint64 getCompressedSize();
74 virtual quint64 getUncompressedSize();
79 bool getWinZipAES( quint16& method, quint8& strength );
81 qint32 writeDataDescriptor( QIODevice* ioDevice );
83 bool isEncrypted()
const {
return generalFlag & ZIP_IS_ENCRYPTED; }
84 bool isStrongEncryption()
const {
return isEncrypted() && (generalFlag & ZIP_IS_STRONG_ENCRYPTION); }
85 bool hasDataDescriptor()
const {
return generalFlag & ZIP_WRITE_DATA_DESCRIPTOR; }
86 bool isUTF8()
const {
return generalFlag & ZIP_IS_UTF8; }
87 virtual bool isDirectory( );
89 QDateTime lastModDate();
91 virtual bool isValid()
99 quint16 versionNeeded;
101 quint16 compressionMethod;
102 quint16 lastModFileTime;
103 quint16 lastModFileDate;
105 quint32 compressedSize;
106 quint32 uncompressedSize;
107 quint16 filenameLength;
108 quint16 extraFieldLength;
110 QByteArray extraField;
116 #endif // LOCALFILEHEADER_H
Definition: ZipFileInfo.h:35