路径:支持库 → ZIP支持库 → ZIP压缩。
硬约束
- 扁平命令,统一前缀
ZIP_。 - 路径支持中文;包内路径用正斜杠
/。 - 密码非空默认 AES-256(加密方式=2);亦可用 ZipCrypto(=1)。
ZIP_压缩到ZIP第 2 参 ZIP 路径可省略(源,, 递归, 密码)。ZIP_添加文件/ZIP_添加目录/ZIP_添加字节集:ZIP 已存在则追加;带密码会重建包。ZIP_删除条目会重建压缩包;加密包须传密码。- 压缩级别:
-1=默认,0=仅存储,1..9=deflate。 ZIP_解压ZIP拒绝含../ 绝对路径的条目(防路径穿越)。- 失败后调用
ZIP_取最后错误()查看原因。
快速开始
如果 (ZIP_压缩到ZIP("G:/data/demo.txt", "G:/data/demo.zip")) {
输出("ok")
}
如果 (ZIP_压缩到ZIP("G:/data",, 真, "123456")) {
输出("目录加密压缩")
}
如果 (ZIP_解压ZIP("G:/data/demo.zip", "G:/out", 真)) {
输出(到文本(ZIP_取条目数("G:/data/demo.zip")))
} 否则 {
输出(ZIP_取最后错误())
}
字节集 b = 到字节集("payload")
ZIP_添加字节集("G:/data/demo.zip", b, "extra.bin")
ZIP_删除条目("G:/data/demo.zip", "extra.bin")
ZIP压缩
本分类共 15 条。
ZIP_压缩到ZIP
- 签名:
逻辑 ZIP_压缩到ZIP(文本 源路径, [文本 ZIP路径=""], [逻辑 递归=真], [文本 密码=""], [整数 加密方式=2], [整数 压缩级别=-1]) - 说明:将文件或目录压缩为 ZIP。第 2 参 ZIP路径可省略(写成「源,, 递归, 密码」中间留空),默认与源同目录、文件名去扩展名后加.zip。密码非空时默认 AES-256。成功返回真。
- 参数一│源路径: 待压缩的文件或目录(支持中文路径)
- 参数二│ZIP路径: 输出.zip,可省略;默认如 新3.3w身份证.txt → 新3.3w身份证.zip
- 参数三│递归: 源为目录时是否包含子目录,默认真
- 参数四│密码: 可选;非空则加密
- 参数五│加密方式: 1=ZipCrypto,2=AES-256(默认)
- 参数六│压缩级别: -1=默认,0=存储,1..9=deflate
ZIP_解压ZIP
- 签名:
逻辑 ZIP_解压ZIP(文本 ZIP路径, 文本 目标目录, [逻辑 覆盖=假], [文本 密码=""]) - 说明:将 ZIP 内全部文件解压到目标目录。加密包须提供密码。拒绝路径穿越。成功返回真。
- 参数一│ZIP路径
- 参数二│目标目录: 解压输出目录,不存在则自动创建
- 参数三│覆盖: 目标文件已存在时是否覆盖,默认假
- 参数四│密码: 加密 ZIP 的密码
ZIP_解压文件
- 签名:
逻辑 ZIP_解压文件(文本 ZIP路径, 文本 包内路径, 文本 本地路径, [逻辑 覆盖=假], [文本 密码=""]) - 说明:从 ZIP 中解压单个文件到指定本地路径。成功返回真。
- 参数一│ZIP路径
- 参数二│包内路径: ZIP 内的文件路径,如 readme.txt 或 sub/a.txt
- 参数三│本地路径: 解压后的完整本地路径
- 参数四│覆盖: 默认假
- 参数五│密码: 可选
ZIP_添加文件
- 签名:
逻辑 ZIP_添加文件(文本 ZIP路径, 文本 本地路径, [文本 包内路径=""], [文本 密码=""], [整数 加密方式=2], [整数 压缩级别=-1]) - 说明:向 ZIP 追加单个文件;ZIP 不存在则新建。带密码时会重建压缩包。成功返回真。
- 参数一│ZIP路径
- 参数二│本地路径: 待添加的本地文件
- 参数三│包内路径: ZIP 内保存路径,可省略
- 参数四│密码: 可选
- 参数五│加密方式: 1=ZipCrypto,2=AES-256(默认)
- 参数六│压缩级别: -1=默认,0=存储,1..9=deflate
ZIP_添加目录
- 签名:
逻辑 ZIP_添加目录(文本 ZIP路径, 文本 目录路径, [文本 包内前缀=""], [逻辑 递归=真], [文本 密码=""], [整数 加密方式=2], [整数 压缩级别=-1]) - 说明:向 ZIP 追加目录内全部文件。带密码时会重建压缩包。成功返回真。
- 参数一│ZIP路径
- 参数二│目录路径
- 参数三│包内前缀: 条目在 ZIP 内的前缀目录,可省略
- 参数四│递归: 是否包含子目录,默认真
- 参数五│密码: 可选
- 参数六│加密方式: 1=ZipCrypto,2=AES-256(默认)
- 参数七│压缩级别: -1=默认,0=存储,1..9=deflate
ZIP_添加字节集
- 签名:
逻辑 ZIP_添加字节集(文本 ZIP路径, 字节集 数据, 文本 包内路径, [文本 密码=""], [整数 加密方式=2], [整数 压缩级别=-1]) - 说明:将字节集写入 ZIP 指定包内路径;ZIP 不存在则新建。带密码时会重建压缩包。成功返回真。
- 参数一│ZIP路径
- 参数二│数据: 待写入的字节集
- 参数三│包内路径: ZIP 内保存路径
- 参数四│密码: 可选
- 参数五│加密方式: 1=ZipCrypto,2=AES-256(默认)
- 参数六│压缩级别: -1=默认,0=存储,1..9=deflate
ZIP_删除条目
- 签名:
逻辑 ZIP_删除条目(文本 ZIP路径, 文本 包内路径, [文本 密码=""]) - 说明:从 ZIP 中删除指定条目(重建压缩包)。加密包须提供密码。成功返回真。
- 参数一│ZIP路径
- 参数二│包内路径
- 参数三│密码: 加密包必填
ZIP_取条目列表
- 签名:
文本数组 ZIP_取条目列表(文本 ZIP路径) - 说明:返回 ZIP 内全部条目路径组成的文本数组。
- 参数一│ZIP路径
ZIP_取条目数
- 签名:
整数 ZIP_取条目数(文本 ZIP路径) - 说明:返回 ZIP 内条目总数(含目录条目)。
- 参数一│ZIP路径
ZIP_取条目信息
- 签名:
文本 ZIP_取条目信息(文本 ZIP路径, 文本 包内路径) - 说明:返回多行文本:路径、未压缩大小、压缩大小、CRC32(十六进制)、是否目录(0|1)、是否加密(0|1)。
- 参数一│ZIP路径
- 参数二│包内路径
ZIP_条目是否存在
- 签名:
逻辑 ZIP_条目是否存在(文本 ZIP路径, 文本 包内路径) - 说明:判断 ZIP 内是否存在指定路径的条目。
- 参数一│ZIP路径
- 参数二│包内路径
ZIP_是否加密
- 签名:
逻辑 ZIP_是否加密(文本 ZIP路径) - 说明:判断 ZIP 内是否存在加密条目。
- 参数一│ZIP路径
ZIP_读文本
- 签名:
文本 ZIP_读文本(文本 ZIP路径, 文本 包内路径, [文本 密码=""]) - 说明:读取 ZIP 内文本文件内容(支持 UTF-8 / UTF-16 LE)。加密条目须提供密码。
- 参数一│ZIP路径
- 参数二│包内路径
- 参数三│密码: 可选
ZIP_读字节集
- 签名:
字节集 ZIP_读字节集(文本 ZIP路径, 文本 包内路径, [文本 密码=""]) - 说明:读取 ZIP 内条目为字节集。加密条目须提供密码。
- 参数一│ZIP路径
- 参数二│包内路径
- 参数三│密码: 可选
ZIP_取最后错误
- 签名:
文本 ZIP_取最后错误() - 说明:返回最近一次 ZIP 操作失败时的错误描述。
易错对照
| 错误 | 正确 |
|---|---|
| 包内路径用反斜杠 | 用 / |
| 加密失败不查错误 | 调 ZIP_取最后错误() |
| 省略 ZIP 路径写成少参 | 中间留空:源,, 真, "密码" |
| 追加加密包当原地改 | 带密码追加 / 删除会重建压缩包 |
恶意包内路径含 ../ |
ZIP_解压ZIP 会失败并写最后错误 |