Sub AppStart (Args() As String)
Dim files As Map = ZipToMap("C:\Users\H\Documents\B4X\XUI Views.b4xlib")
Dim b() As Byte = files.Get("SwiftButton.bas")
Log(BytesToString(b, 0, b.Length, "utf8"))
End Sub
Private Sub ZipToMap (ZipPath As String) As Map
Dim result As Map
result.Initialize
Dim ZipFile As JavaObject
ZipFile.InitializeNewInstance("java.util.zip.ZipFile", Array(ZipPath))
Dim enumeration As JavaObject = ZipFile.RunMethod("entries", Null)
Do While enumeration.RunMethod("hasMoreElements", Null).As(Boolean)
Dim ZipEntry As JavaObject = enumeration.RunMethod("nextElement", Null)
Dim Name As String = ZipEntry.RunMethod("getName", Null)
If Name.EndsWith("/") Then Continue 'ignore directory entries
'you can add name filters here
result.Put(Name, Bit.InputStreamToBytes(ZipFile.RunMethod("getInputStream", Array(ZipEntry))))
Loop
ZipFile.RunMethod("close", Null)
Return result
End Sub