Can I Please have a zip extract code?

BlitzMax Forums/BlitzMax Programming/Can I Please have a zip extract code?

Caton(Posted 2016) [#1]
I look everywhere I really need a code that extracts all files from a zip file
to current game dir.

gzip only does one file.


xlsior(Posted 2016) [#2]
koriolis.zipstream will let you access files and folders inside a zipfile:

https://github.com/maxmods/koriolis.mod


Caton(Posted 2016) [#3]
Building test
[ 42%] Compiling:bmxsupport.c
[ 43%] Compiling:ioapi.c
[ 44%] Compiling:unzip.c
[ 45%] Compiling:zip.c
[ 82%] Processing:bufferedstream.bmx
[ 85%] Compiling:bufferedstream.bmx.release.win32.x64.c
[ 87%] Archiving:bufferedstream.release.win32.x64.a
[ 95%] Processing:zipstream.bmx
C:/BlitzMax/MinGW32/bin/ar.exe: creating C:/BlitzMax/mod/koriolis.mod/bufferedstream.mod/bufferedstream.release.win32.x64.a
[ 96%] Compiling:zipstream.bmx.release.win32.x64.c
[ 97%] Archiving:zipstream.release.win32.x64.a
[ 98%] Processing:test.bmx
C:/BlitzMax/MinGW32/bin/ar.exe: creating C:/BlitzMax/mod/koriolis.mod/zipstream.mod/zipstream.release.win32.x64.a
[ 99%] Compiling:test.bmx.gui.release.win32.x64.c
[100%] Linking:test.exe
C:/BlitzMax/mod/koriolis.mod/zipstream.mod/zipstream.release.win32.x64.a(bmxsupport.c.release.win32.x64.o):bmxsupport.c:(.text+0x18): undefined reference to `koriolis_zipstream_TZipStream_read_file_func'
C:/BlitzMax/mod/koriolis.mod/zipstream.mod/zipstream.release.win32.x64.a(bmxsupport.c.release.win32.x64.o):bmxsupport.c:(.text+0x38): undefined reference to `koriolis_zipstream_TZipStream_write_file_func'
C:/BlitzMax/mod/koriolis.mod/zipstream.mod/zipstream.release.win32.x64.a(bmxsupport.c.release.win32.x64.o):bmxsupport.c:(.text+0x55): undefined reference to `koriolis_zipstream_TZipStream_tell_file_func'
C:/BlitzMax/mod/koriolis.mod/zipstream.mod/zipstream.release.win32.x64.a(bmxsupport.c.release.win32.x64.o):bmxsupport.c:(.text+0x68): undefined reference to `koriolis_zipstream_TZipStream_seek_file_func'
C:/BlitzMax/mod/koriolis.mod/zipstream.mod/zipstream.release.win32.x64.a(bmxsupport.c.release.win32.x64.o):bmxsupport.c:(.text+0x1): undefined reference to `koriolis_zipstream_TZipStream_open_file_func'
C:/BlitzMax/mod/koriolis.mod/zipstream.mod/zipstream.release.win32.x64.a(bmxsupport.c.release.win32.x64.o):bmxsupport.c:(.text+0x81): undefined reference to `koriolis_zipstream_TZipStream_close_file_func'
C:/BlitzMax/mod/koriolis.mod/zipstream.mod/zipstream.release.win32.x64.a(bmxsupport.c.release.win32.x64.o):bmxsupport.c:(.text+0x91): undefined reference to `koriolis_zipstream_TZipStream_testerror_file_func'
Build Error: Failed to link C:\Extractor\test.exe
Process complete


it doesn't work!


xlsior(Posted 2016) [#4]
Are you using the stock blitzmax, or blitzmax NG?

If NG, then the above should work.
If stock, then try this one: http://www.xlsior.net/temp/koriolis.mod.zip

If it still fails, you may need to rebuild your modules.


Caton(Posted 2016) [#5]
BMX NG
it still fails

I couldn't find any other examples of extracting zip files
source
Import koriolis.zipstream

SuperStrict

Framework brl.standardio
Import koriolis.zipstream

Local books:String[] = ["LegendsOfTheGods.txt", "MythsAndLegendsOfAncientGreeceAndRome.txt", "MythsAndLegendsOfChina.txt"]

For Local book:String = EachIn books

	Local text:String = LoadText("zip::pack.zip//" + book)

	Print book
	Print "   Size : " + text.length

	Print ""

Next


Building test
[100%] Linking:test.exe
C:/BlitzMax/mod/koriolis.mod/zipstream.mod/zipstream.release.win32.x64.a(bmxsupport.c.release.win32.x64.o):bmxsupport.c:(.text+0x18): undefined reference to `koriolis_zipstream_TZipStream_read_file_func'
C:/BlitzMax/mod/koriolis.mod/zipstream.mod/zipstream.release.win32.x64.a(bmxsupport.c.release.win32.x64.o):bmxsupport.c:(.text+0x38): undefined reference to `koriolis_zipstream_TZipStream_write_file_func'
C:/BlitzMax/mod/koriolis.mod/zipstream.mod/zipstream.release.win32.x64.a(bmxsupport.c.release.win32.x64.o):bmxsupport.c:(.text+0x55): undefined reference to `koriolis_zipstream_TZipStream_tell_file_func'
C:/BlitzMax/mod/koriolis.mod/zipstream.mod/zipstream.release.win32.x64.a(bmxsupport.c.release.win32.x64.o):bmxsupport.c:(.text+0x68): undefined reference to `koriolis_zipstream_TZipStream_seek_file_func'
C:/BlitzMax/mod/koriolis.mod/zipstream.mod/zipstream.release.win32.x64.a(bmxsupport.c.release.win32.x64.o):bmxsupport.c:(.text+0x1): undefined reference to `koriolis_zipstream_TZipStream_open_file_func'
C:/BlitzMax/mod/koriolis.mod/zipstream.mod/zipstream.release.win32.x64.a(bmxsupport.c.release.win32.x64.o):bmxsupport.c:(.text+0x81): undefined reference to `koriolis_zipstream_TZipStream_close_file_func'
C:/BlitzMax/mod/koriolis.mod/zipstream.mod/zipstream.release.win32.x64.a(bmxsupport.c.release.win32.x64.o):bmxsupport.c:(.text+0x91): undefined reference to `koriolis_zipstream_TZipStream_testerror_file_func'
Build Error: Failed to link C:\Extractor\test.exe
Process complete