Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
|
How to read a binary structure (.zip header)Demonstrates calling methods such as getUInt, getUShort, etc. to read integers in a binary structure. In this case, a .zip file is opened and the 1st local file header is examined.
import sys import chilkat zipData = chilkat.CkByteData() success = zipData.loadFile("dude.zip") if (success != True): print "Failed to load file" sys.exit() offset = 0 filenameLen = zipData.getUShort(26) print zipData.getRangeStr(30,filenameLen) compressedSize = zipData.getUInt(18) uncompressedSize = zipData.getUInt(22) print str(compressedSize) print str(uncompressedSize) # Note: Zip File Structure: # see: http://www.pkware.com/documents/casestudies/APPNOTE.TXT # Overall .ZIP file format: # [local file header 1] # [file data 1] # [data descriptor 1] # . # . # . # [local file header n] # [file data n] # [data descriptor n] # [archive decryption header] # [archive extra data record] # [central directory] # [zip64 end of central directory record] # [zip64 end of central directory locator] # [end of central directory record] # A. Local file header: # local file header signature 4 bytes (0x04034b50) # version needed to extract 2 bytes # general purpose bit flag 2 bytes # compression method 2 bytes # last mod file time 2 bytes # last mod file date 2 bytes # crc-32 4 bytes # compressed size 4 bytes # uncompressed size 4 bytes # file name length 2 bytes # extra field length 2 bytes # file name (variable size) # extra field (variable size) # ... |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.