Pular para o conteúdo principal

Empacotar arquivos com ZIP (file.zip)

Declaração

sucesso, mensagem_de_erro = file.zip(caminho_do_zip, lista_de_arquivos [, senha])

Parâmetros

  • caminho do zip
    Texto; caminho onde o arquivo zip a ser criado será salvo.
  • lista de arquivos
    Tabela | texto.
    • quando for uma tabela: cada item é uma tabela com dois elementos { caminho_do_arquivo_de_origem, caminho_de_arquivamento }; o caminho de arquivamento é o caminho relativo dentro do zip
    • quando for uma string: representa um diretório; o conteúdo desse diretório será empacotado no zip
  • senha
    Texto opcional; quando fornecida, cria um zip criptografado.

Valores retornados

  • sucesso
    Booleano; retorna true em caso de sucesso e false em caso de falha.
  • mensagem de erro
    Texto; mensagem de erro em caso de falha.

Observações

Compacta arquivos ou diretórios em um arquivo zip.
Quando lista de arquivos for uma tabela, permite controlar precisamente o caminho relativo de cada entrada dentro do zip; quando for uma string, empacota todo o conteúdo do diretório.
Disponível somente em versões posteriores a 20250914.

Exemplo

Especificar precisamente o caminho de arquivamento usando uma “tabela”

local ok, err = file.zip(XXT_SCRIPTS_PATH.."/out.zip", {
{ XXT_SCRIPTS_PATH.."/data/readme.txt", "docs/readme.txt" },
{ XXT_SCRIPTS_PATH.."/assets/logo.png", "assets/images/logo.png" },
}, "123456")
if not ok then
sys.alert("打包失败:"..err)
else
sys.alert("打包成功:"..XXT_SCRIPTS_PATH.."/out.zip")
end

Empacotar diretamente um diretório

local ok, err = file.zip(XXT_SCRIPTS_PATH.."/project.zip", XXT_SCRIPTS_PATH.."/project")
if not ok then
sys.alert("打包失败:"..err)
else
sys.alert("打包成功:"..XXT_SCRIPTS_PATH.."/project.zip")
end

Observação: o código acima usa a função sys.alert, que não pertence a este capítulo.