创建RAR文件对象
不存在的目录自动创建
成功返回unrar对象,失败返回:null,错误信息,错误代码
以只读模式打开压缩包
并计算压缩包内文件总数
错误代码、错误信息对照表。
fsys.unrar.extract("rar压缩文件路径","解压目录","密码"
,function(percent,totalSize,unpackSize,filename,rarHeader){
/*percent 为解压进度百分比,
totalSize 为解压后总大小,math.size64 对象。
unpackSize 为已解压大小,math.size64 对象。
filename 为当前解压文件名。
rarHeader 为当前 RAR 压缩头。
函数返回 false 退出解压,无返回值或返回 true 继续操作*/
}
)
解压文件到压缩包所在目录
成功返回解压目录
成功返回解压目录,失败返回:false,错误信息,错误代码
以只读模式打开压缩包
并返回解压后文件大小
压缩卷名
文件注释缓冲区
注释的缓冲区大小
实际注释大小
注释状态
文件属性
压缩之前文件的CRC值
文件名
按照MS DOS格式输出的日期和时间
输出文件标志
压缩文件的宿主操作系统
压缩方式
分卷大小
分卷大小高位
解压后的文件大小
解压后的文件大小高位
解压需要的Rar版本。按照10 * Major version + minor version格式给出
关闭文件
注释,UTF-8 编码
返回压缩包内文件总数
for(filename,rarHeader in fsysUnrarObject.eachHeader() ){
if( ! fsysUnrarObject.extractNext(opMode) ){
return false;
}
};
解压并查找下一个文件
失败返回:null,错误信息,错误代码
成功返回true
最后发生的错误信息
最后发生的错误代码
读取下一个文件头,
成功返回文件头,文件名
失败返回:null,错误信息,错误代码
解压完成返回空
返回解压目录
fsysUnrarObject.setCallback(
function( msg,userData,pData,dataSize){
if(msg==1/*UCM_PROCESSDATA*/){
}
elseif(msg==4/*UCM_NEEDPASSWORDW*/){
raw.copy(pData,string.toUtf16("password"));
}
}
)
解压后大小,math.size64对象
查找下一个文件
失败返回:null,错误信息,错误代码
成功返回true
测试并查找下一个文件
失败返回:null,错误信息,错误代码
成功返回true
_ERAR_BAD_ARCHIVE=0xD
_ERAR_BAD_DATA=0xC
_ERAR_ECLOSE=0x11
_ERAR_ECREATE=0x10
_ERAR_END_ARCHIVE=0xA
_ERAR_EOPEN=0xF
_ERAR_EREAD=0x12
_ERAR_EWRITE=0x13
_ERAR_MISSING_PASSWORD=0x16
_ERAR_NO_MEMORY=0xB
_ERAR_SMALL_BUF=0x14
_ERAR_UNKNOWN=0x15
_ERAR_UNKNOWN_FORMAT=0xE
_RAR_DLL_VERSION=5
_RAR_EXTRACT=2
_RAR_OM_EXTRACT=1
_RAR_OM_LIST=0
_RAR_OM_LIST_INCSPLIT=2
_RAR_SKIP=0
_RAR_TEST=1
_RAR_VOL_ASK=0
_RAR_VOL_NOTIFY=1