command ee.zip.extractArchive pArchive, pWhere
local tZipContents
local tFolderPath
-- open archive and read items
revZipOpenArchive pArchive, "read"
put revZipEnumerateItems(pArchive) into tZipContents
-- get rid of the last slash if there is one
if the last char of pWhere is slash then
delete the last char of pWhere
end if
-- loop through the zip content, create folders and files
repeat for each line ll in tZipContents
if the last char of ll is slash then --> the last item is a directory
put ll into tFolderPath
-- create folders
_ee.zip.createFolders tFolderPath, pWhere
else --> the last item is a file
set the itemDel to slash
put item 1 to -2 of ll into tFolderPath
-- create folders
_ee.zip.createFolders tFolderPath, pWhere
-- extract file
revZipExtractItemToFile pArchive, ll, (pWhere & slash & ll)
end if
end repeat
end ee.zip.extractArchive
private command _ee.zip.createFolders pPath, pWhere
local tFullPath
split pPath by slash
put empty into tFullPath
repeat for each element ee in pPath
put ee & slash after tFullPath
create folder (pWhere & slash & tFullPath)
end repeat
end _ee.zip.createFolders
Sunday, September 20, 2015
Extract zip archive with folders in Livecode
Ever tried to extract a zip archive with revZip that contains folders? It's not so easy. The example from Livecode states it is not possible. But I got it to work the following way below. I'm sure that the code still can be optimized, but at least it's a start.
Subscribe to:
Post Comments (Atom)
You, sir, are a godsend.
ReplyDelete