¿Cómo extraer archivos de un archivo zip usando Lua?

¿Cómo extraigo archivos usando Lua?

Actualización: ahora tengo el siguiente código, pero se bloquea cada vez que llega al final de la función, pero extrae con éxito todos los archivos y los coloca en la ubicación correcta.

require "zip"

function ExtractZipAndCopyFiles(zipPath, zipFilename, destinationPath)
    local zfile, err = zip.open(zipPath .. zipFilename)

    -- iterate through each file insize the zip file
    for file in zfile:files() do
        local currFile, err = zfile:open(file.filename)
        local currFileContents = currFile:read("*a") -- read entire contents of current file
        local hBinaryOutput = io.open(destinationPath .. file.filename, "wb")

        -- write current file inside zip to a file outside zip
        if(hBinaryOutput)then
            hBinaryOutput:write(currFileContents)
            hBinaryOutput:close()
        end
    end

    zfile:close()
end
-- call the function
ExtractZipAndCopyFiles("C:\\Users\\bhannan\\Desktop\\LUA\\", "example.zip", "C:\\Users\\bhannan\\Desktop\\ZipExtractionOutput\\")

¿Por qué se bloquea cada vez que llega al final?

Respuestas a la pregunta(3)

Su respuesta a la pregunta