メインコンテンツまでスキップ

ファイルを 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 を使用しています