Appearance
压缩与解压
仅支持 ZIP 格式,基于 zip4j 库实现。
压缩文件
js
// 压缩单个文件
var zip = $zip.zipFile("/sdcard/test.txt", "/sdcard/test.zip")
// 压缩目录
var zip = $zip.zipDir("/sdcard/myfolder", "/sdcard/archive.zip")
// 压缩多个文件
var zip = $zip.zipFiles(["/sdcard/a.txt", "/sdcard/b.txt"], "/sdcard/files.zip")压缩并加密
js
// 使用密码压缩
var zip = $zip.zipDir("/sdcard/myfolder", "/sdcard/archive.zip", {
password: "mypassword",
encryptionMethod: "ENC_METHOD_AES",
aesKeyStrength: "AES_STRENGTH_256"
})解压文件
js
// 解压无密码的 zip 文件
$zip.unzip("/sdcard/archive.zip", "/sdcard/output")
// 解压有密码的 zip 文件
$zip.unzip("/sdcard/archive.zip", "/sdcard/output", {
password: "mypassword"
})Zip 对象操作
使用 $zip.open() 打开已有的 zip 文件进行操作:
js
// 打开 zip 文件
var zip = $zip.open("/sdcard/archive.zip")
// 添加文件
zip.addFile("/sdcard/newfile.txt")
// 添加多个文件
zip.addFiles(["/sdcard/a.txt", "/sdcard/b.txt"])
// 添加文件夹
zip.addFolder("/sdcard/myfolder")
// 解压所有文件
zip.extractAll("/sdcard/output")
// 解压单个文件
zip.extractFile("test.txt", "/sdcard/output")
// 解压单个文件并重命名
zip.extractFile("test.txt", "/sdcard/output", {}, "renamed.txt")
// 设置密码
zip.setPassword("mypassword")
// 检查是否加密
if (zip.isEncrypted()) {
toastLog("文件已加密")
}
// 检查是否为有效的 zip 文件
if (zip.isValidZipFile()) {
toastLog("有效的 zip 文件")
}
// 获取所有文件头
var headers = zip.getFileHeaders()
headers.forEach(h => {
log(h.fileName)
})
// 移除文件
zip.removeFile("test.txt")
// 获取文件路径
var path = zip.getPath()参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
password | String | 压缩/解压密码 |
compressionMethod | String | 压缩方法:COMP_STORE(仅存储)、COMP_DEFLATE(默认)、COMP_AES_ENC |
encryptionMethod | String | 加密方法:ENC_METHOD_STANDARD、ENC_METHOD_AES |
aesKeyStrength | String | AES 强度:AES_STRENGTH_128、AES_STRENGTH_192、AES_STRENGTH_256 |