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.
use chilkat(); $zipData = new chilkat::CkByteData(); $success = $zipData->loadFile("dude.zip"); if ($success != 1) { print "Failed to load file" . "\r\n"; exit; } $offset = 0; $filenameLen = $zipData->getUShort(26); print $zipData->getRangeStr(30,$filenameLen) . "\r\n"; $compressedSize = $zipData->getUInt(18); $uncompressedSize = $zipData->getUInt(22); print $compressedSize . "\r\n"; print $uncompressedSize . "\r\n"; # 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.