Aller au contenu principal

Empaqueter des fichiers avec ZIP (file.zip)

Déclaration

succès, message d’erreur = file.zip(chemin_zip, liste de fichiers [, mot de passe])

Paramètres

  • chemin_zip
    Chaîne, chemin où enregistrer le fichier zip à créer
  • liste de fichiers
    Type table | chaîne
    • Si c’est une table : chaque élément est une table à deux éléments chemin du fichier source, chemin d’archive , où le « chemin d’archive » est le chemin relatif à l’intérieur du zip
    • Si c’est une chaîne : représente le chemin d’un répertoire dont le contenu sera empaqueté dans le zip
  • mot de passe
    Chaîne, paramètre facultatif ; s’il est fourni, crée un zip chiffré

Valeur de retour

  • succès
    Booléen, renvoie true si l’opération réussit et false dans le cas contraire
  • message d’erreur
    Chaîne, message d’erreur en cas d’échec

Description

Compresse un fichier ou un répertoire dans un fichier zip
Lorsque la liste de fichiers est une table, permet de contrôler précisément le chemin relatif de chaque entrée dans le zip ; lorsqu’il s’agit d’une chaîne, empaquette l’ensemble du contenu du répertoire
Cette fonction est disponible dans les versions postérieures à 20250914

Exemple

Spécifier précisément le chemin d’archive avec une « table »

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

Empaqueter directement un répertoire

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

Remarque : le code ci-dessus utilise la fonction hors de ce chapitre sys.alert