Xojo Conferences

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.
// open zip archive
dim f as FolderItem=SpecialFolder.Desktop.Child("test.zip")
dim z as new UnZipMBS(f)

// let's start

// 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
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
b.Write s
loop until lenb(s)=0

// cleanup

end if
end if

// move to next file until we reach the end
loop until z.Lasterror<>0
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:

Blog Entries

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

UnZipFilePositionMBS   -   UpDownArrows

The biggest plugin in space...

MBS Xojo PDF Plugins