this will get you the total size necessary:
if the zip is in your dirassets, copy it to dirinternal.
otherwise, download it and save it in dirinternal
load the archiver library from add'l libraries. (star dust's library may or may not expose the properties i'm using. i don't know)
EDIT: i took a look at the sd zip source. i did not see the expanded size anywhere.
ask the archiver for ListZipEntries
it's a map, even thought is says list
step through the map catching the expanded size of each file to be unarchived.
adding up the sizes as you go along
at the end, show the total size necessary.
i've run it and confirmed the output with a zip file i have.
the map's key is the file name. the associated value (fileinfo) is an array of 3 longs. the first element is the expanded size.
if you look at a zip file on your desktop, you'll see the expanded and reduced sizes are stored in the archive.
listzipentries() exposes those values.
dim ar as.archiver
Dim filemap As Map = ar.ListZipEntries(File.DirInternal, "filename.zip")
Log(filemap.Size & " entries")
Dim totbytes As Long = 0
For Each v As Object In filemap.Keys
Dim bytes() As Long = filemap.Get(v)
Log(v & " " & bytes(0))
totbytes = totbytes + bytes(0)
Next
Log("total size necessary: " & totbytes)