Xojo Developer Conference
25/27th April 2018 in Denver.
MBS Xojo Conference
6/7th September 2018 in Munich, Germany.

Platforms to show: All Mac Windows Linux Cross-Platform

UnZipMBS class

Type Topic Plugin Version macOS Windows Linux Console & Web iOS
class Compression MBS Compression Plugin 8.6 Yes Yes Yes Yes No
Function: A class to decompress a zip archive.
Example:
// open zip archive
dim f as FolderItem=SpecialFolder.Desktop.Child("test.zip")
dim z as new UnZipMBS(f)

// let's start
z.GoToFirstFile
do

// get details on this file:
dim info as UnZipFileInfoMBS = z.FileInfo
dim name as string = z.FileName

if left(name,8) <> "__MACOSX" then // ignore Mac special files for metadata
z.OpenCurrentFile
if z.Lasterror=0 then

// create output file (if you want to support folders, this needs to be changed. See other examples)
dim outfile as folderitem = GetFolderItem(Name)
dim b as BinaryStream = BinaryStream.Create(outfile, true)
dim s as string

// now read 100 KB chunks and write them to new file
do
s=z.ReadCurrentFile(100000)
b.Write s
loop until lenb(s)=0


// cleanup
b.Close
z.CloseCurrentFile

end if
end if

// move to next file until we reach the end
z.GoToNextFile
loop until z.Lasterror<>0
Notes:
This is a simple class which uses zlib and has some limitations:

  • only deflate as compression method
  • only one date per file is preserved
  • no resource forks on Mac OS
  • no text encoding handling
  • no Apple or Microsoft extensions for special file flags or permissions.

Feedback, Comments & Corrections

This class has no sub classes.

Some examples which use this class:


The items on this page are in the following plugins: MBS Compression Plugin.


UnZipFilePositionMBS   -   UpDownArrows




Links
MBS Xojo Chart Plugins