7Zip压缩插件
约 1755 字大约 6 分钟
1. 插件信息
免责声明:本插件以及本博客内容均由第三方提供,请您仔细甄别后再下载和使用。若插件有任何侵权、病毒或其他违法行为,请联系我方下架。
作者:LZX284
基于p7zip 16.02制作,支持多种格式文件的压缩与解压,安装后即可使用。
支持的API架构:armeabi-v7a, arm64-v8a, x86, x86_64
下载地址: https://wwi.lanzoup.com/iGgoS17t0r9e
从Pro 9.2开始,打包时插件可被合并到apk中,打包后无需再安装插件即可使用。
2. 用法示例
解压
javascript
let P7zip = $plugins.load('cn.lzx284.p7zip');
let mP7zip = new P7zip();
// 源路径(目录或文件皆可,必须是完整路径)
let srcPath = '/storage/emulated/0/脚本/';
// 目标目录(必须是完整路径)
let dirPath = '/storage/emulated/0/';
// 压缩类型
// 支持的压缩类型包括: zip 7z bz2 bzip2 tbz2 tbz gz gzip tgz tar wim swm xz txz。
let type = "7z";
// 压缩等级: 0-9。
let level = 0;
// 压缩密码(注意,在p7zip中,类似""这样的空字符也算是密码的一种,与没有密码不一样)
let password = "password"
// 压缩文件路径(必须是完整路径)
let compressedFile = "/storage/emulated/0/test." + type;
let rarFile = files.path("./test.rar"); // rar格式仅支持解压缩
let cmdStr = "7z x -y -aos -p" + password + " -o" + dirPath + " " + rarFile
// 支持的解压缩类型包括:zip、7z、bz2、bzip2、tbz2、tbz、gz、gzip、tgz、tar、wim、swm、xz、txz以及rar、chm、iso、msi等众多格式。
// p7zip解压(若文件已存在则跳过)
// 无密码解压:mP7zip.extract(compressedFile, dirPath)
switch (mP7zip.extract(compressedFile, dirPath, password)) {
case 0:
toastLog("解压缩成功!请到 " + dirPath + " 目录下查看。")
break;
case 1:
toastLog("压缩结束,存在非致命错误(例如某些文件正在被使用,没有被压缩)")
break;
case 2:
toastLog("致命错误")
break;
case 7:
toastLog("命令行错误")
break;
case 8:
toastLog("没有足够内存")
break;
case 255:
toastLog("用户中止操作")
break;
default: toastLog("未知错误")
}
压缩
javascript
let P7zip = $plugins.load('cn.lzx284.p7zip');
let mP7zip = new P7zip();
// 源路径(目录或文件皆可,必须是完整路径)
let srcPath = '/storage/emulated/0/脚本/';
// 目标目录(必须是完整路径)
let dirPath = '/storage/emulated/0/';
// 压缩类型
// 支持的压缩类型包括: zip 7z bz2 bzip2 tbz2 tbz gz gzip tgz tar wim swm xz txz。
let type = "7z";
// 压缩等级: 0-9。
let level = 0;
// 压缩密码(注意,在p7zip中,类似""这样的空字符也算是密码的一种,与没有密码不一样)
let password = "password"
// 压缩文件路径(必须是完整路径)
let compressedFile = "/storage/emulated/0/test." + type;
let rarFile = files.path("./test.rar"); // rar格式仅支持解压缩
let cmdStr = "7z x -y -aos -p" + password + " -o" + dirPath + " " + rarFile
// p7zip压缩(若文件已存在则跳过)
// 无密码压缩:mP7zip.add(type, level, srcPath, compressedFile)
switch (mP7zip.add(type, level, srcPath, compressedFile, password)) {
case 0:
toastLog("压缩成功!文件已保存为: " + compressedFile)
break;
case 1:
toastLog("压缩结束,存在非致命错误(例如某些文件正在被使用,没有被压缩)")
break;
case 2:
toastLog("致命错误")
break;
case 7:
toastLog("命令行错误")
break;
case 8:
toastLog("没有足够内存")
break;
case 255:
toastLog("用户中止操作")
break;
default:
toastLog("未知错误")
}
自定义命令
javascript
let P7zip = $plugins.load('cn.lzx284.p7zip');
let mP7zip = new P7zip();
// 源路径(目录或文件皆可,必须是完整路径)
let srcPath = '/storage/emulated/0/脚本/';
// 目标目录(必须是完整路径)
let dirPath = '/storage/emulated/0/';
// 压缩类型
// 支持的压缩类型包括: zip 7z bz2 bzip2 tbz2 tbz gz gzip tgz tar wim swm xz txz。
let type = "7z";
// 压缩等级: 0-9。
let level = 0;
// 压缩密码(注意,在p7zip中,类似""这样的空字符也算是密码的一种,与没有密码不一样)
let password = "password"
// 压缩文件路径(必须是完整路径)
let compressedFile = "/storage/emulated/0/test." + type;
let rarFile = files.path("./test.rar"); // rar格式仅支持解压缩
let cmdStr = "7z x -y -aos -p" + password + " -o" + dirPath + " " + rarFile
// 自定义命令:解压加密的rar压缩文件
switch (mP7zip.cmdExec(cmdStr)) {
case 0:
toastLog("解压缩成功!请到 " + dirPath + " 目录下查看。")
break;
case 1:
toastLog("压缩结束,存在非致命错误(例如某些文件正在被使用,没有被压缩)")
break;
case 2:
toastLog("致命错误")
break;
case 7:
toastLog("命令行错误")
break;
case 8:
toastLog("没有足够内存")
break;
case 255:
toastLog("用户中止操作")
break;
default:
toastLog("未知错误")
}
3. 附录(p7zip命令行使用参考)
7z|7za 子命令 [参数开关] 压缩包 [<文件名称>|<@列表文件…>]
在方括号内的表达式(“[” 和 “]”之间的字符)是可选的。在书名号内的表达式(“<” 和 “>”之间的字符)是必须替换的表达式(而且要去掉括号)。
7-Zip 支持和 Windows 相类似的通配符:
“*”可以使用星号代替零个或多个字符。
“?”可以用问号代替名称中的单个字符。
如果只用 *
,7-Zip 会将其视为任何扩展名的全部文件。
子命令
- a: 添加到压缩文件
- b: 基准测试
- d: 从档案中删除文件
- e: 解压档案文件 (无目录名称)
- l: 列出压缩文件内容
- t: 测试压缩文件的完整性
- u: 更新文件到压缩文件中
- x: 完整路径下解压文件
参数开关
- -ai[r[-|0]]{@列表文件|!通配符}: 包括 压缩文件
- -ax[r[-|0]]{@列表文件|!通配符}: 排除 压缩文件
- -bd: 禁用百分比显示功能
- -i[r[-|0]]{@列表文件|!通配符}: 包括 文件名称
- -m<参数>,关于它有许多参数及指令,这里仅介绍简单且常用的用法。
-m0=<压缩算法> 默认使用 lzma
-md=<字典大小> 设置字典大小,例如 -md=32m
-mfb=64 number of fast bytes for LZMA = 64
-ms=<on|off> 是否固实压缩
-mx=<19> 压缩级别-m0=压缩算法 默认使用 lzma9 压缩级别
-mx=数字 1 - -o{目录}: 设置输出目录
- -p{密码}: 设置密码
- -r[数字]: 递归子目录,使用数字定义递归子目录的深度
- -scs{UTF-8 | WIN | DOS}: 设置列表文件的编码格式
- -sfx[{名称}]: 创建 SFX 自解压文件
- -si[{名称}]: 从stdin(标准输入设备)读取数据
- -slt: 为 l (列表) 命令显示技术信息
- -so: 将数据写入stdout(标准输出设备)
- -ssc[-]: 设置大小写区分模式
- -ssw: 压缩共享文件
- -t{类型}: 设置压缩文件格式,(7z, zip, gzip, bzip2 or tar. 7z是默认的格式)
- -v{大小}[b|k|m|g]: 分卷压缩
- -u[-][p#][q#][r#][x#][y#][z#][!新建档案_名称]: 更新选项
- -w[{路径}]: 指定工作目录,路径为空时代表临时文件夹目录
- -x[r[-|0]]]{@列表文件|!通配符}: 排除 文件名称
- -y: 所有询问选是
退出代码
- 0 :正常,没有错误
- 1 :警告,没有致命的错误,例如某些文件正在被使用,* 没有被压缩
- 2 :致命错误
- 7 :命令行错误
- 8 :没有足够的内存
- 255 :用户中止了操作
开源地址
已过期 GitHub:p7zip_autojs_plugin