Перейти к основному содержимому

Упаковка файлов в ZIP (file.zip)

Объявление

успех, сообщение_об_ошибке = file.zip(путь_к_zip, список_файлов [, пароль])

Параметры

  • путь_к_zip
    Строка, путь для создаваемого ZIP-файла
  • список_файлов
    Таблица | строка
    • таблица: каждый элемент содержит два значения { исходный_путь, путь_в_архиве }, где путь в архиве — относительный путь внутри ZIP
    • строка: путь к каталогу, содержимое которого упаковывается в ZIP
  • пароль
    Строка, необязательный параметр; при указании создаётся зашифрованный ZIP

Возвращаемое значение

  • успех
    Логическое значение: true при успехе и false при ошибке
  • сообщение_об_ошибке
    Строка, сообщение об ошибке при неудаче

Описание

Сжимает файл или каталог в ZIP-файл
Если список_файлов — таблица, можно точно задать относительный путь каждой записи внутри ZIP; если это строка, в архив помещается всё содержимое каталога
Доступно в версиях после 20250914

Пример

Точное задание пути архива через «таблицу»

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

Прямая упаковка каталога

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

Примечание: приведённый выше код использует функцию не из этой главы — sys.alert.