API 唯一可公开访问的课程是cVszArchive。以下是相关性(种类)顺序的方法,属性和事件的简短说明。 Init([DllFile As String]) As Boolean 可选地用于指示7z.dll位置。如果DllFile是空的,首先7z.dll从VszLib.dll文件夹加载,然后注册表检查7-zip安装文件夹,最后轻量级7za.dll从VszLib.dll文件夹中尝试加载。最好的做法是放置在客户端代码7z.dll旁边VszLib.dll,不要Init显式地从客户端代码中调用。提取/压缩操作会在需要时调用它。 请注意7za.dll(从7-zip附件)可用于压缩/提取7z档案(不支持zip)。更小的7zxa.dll(172KB)可以用来提取7z档案。 OpenArchive(ArchiveFile As String) As Boolean 使用归档文件扩展名打开存档,以猜测解压缩器类型。目前支持的更新文件扩展名:7z,zip,tar,bz2,gz,xz,wim。支持的其他格式:rar,cab,chm,iso,msi,hfs,iso,arj,cpio,deb,dmg,fat,flv,lzh,lzma,lzma86,mbr,ntfs,exe,pmd,rpm,001,swf, vhd,xar,z。人口FileCount和FileInfo财产。 Extract(TargetFolder As String, [Filter]) As Boolean TargetFolder从以前打开的归档文件中提取文件。可选Filter可以通过精确匹配(document.txt),文件名掩码(*.exe)或FileCount布尔数组来指定要提取的文件条目,每个索引指示是否解压缩具有相同索引(数组条目设置为True)的文件或跳过它(数组条目集到False)。引发Progress事件以表明进展并允许取消提取。 Property FileCount As Long (只读) 返回存档中的文件条目数
Property FileInfo(FileIdx As Long) (只读) 返回一个包含有关文件条目信息的数组。数组索引为:0 - 文件名,1 - 属性,2 - 大小,3 - 如果加密,4 - CRC,5 - 文件注释,6 - 创建时间,7 - 最后访问时间,8 - 最后写入时间。Empty如果当前的归档格式不支持,则可能有一些条目。 AddFile(File As String, [Name As String], [Comment As String]) As Boolean 添加一个要归档的文件。File必须是现有文件的(绝对)路径。可选Name可以在存档中指定条目的名称和相对文件夹。如果Name未指定,File则在档案的根文件夹中使用filename部分作为名称。Comment是可选的(可能)不受所有压缩机的支持。 CompressArchive(ArchiveFile As String) As Boolean 使用先前添加的文件创建存档。压缩器类型由归档文件扩展名猜测。引发Progress事件以指示进度并允许取消压缩。 Property Parameter(ParamName As String) As Variant (读/写) 指定自定义压缩参数。这些对应于-m命令行的切换7z.exe。设置压缩级别切换-mx3或-mx=3转换为Parameter("x") = 3。设置7z压缩方法-m0=LZMA2被翻译成Parameter("0") = "LZMA2"。设置多线程切换-mmt=on或-mmt=3转换为Parameter("mt") = "on"或Parameter("mt") = 3。设置加密头切换-mhe=on被转换为Parameter("he") = "on"。有关其他信息,请参阅-m开关的更多示例。 Property Password As String (读/写) 获取/设置提取/压缩期间使用的密码。如果使用不正确的存档密码,解压缩程序会引发数据错误。密码错误?错误通过Error事件。 Property VolumeSize As Double (读/写) 获取/设置在压缩期间创建的拆分卷的卷大小(以字节为单位)。只能用于7z档案。对于其他格式,将VolumeSize本机解压缩器不支持模式的大小块中的输出归档分割。 Property FormatCount As Long (只读) 获取7z.dll已加载的格式数量Init。 Property FormatInfo(FormatIdx As Long) As Variant (只读) 返回一个包含压缩格式信息的数组。数组索引为:0 - 名称,1 - 类别ID,2 - 文件扩展名,3 - 附加扩展名(如果有),4 - 如果更新支持,则为bool,5 - 保留名称时为bool,带有归档的6字节数组开始签名,具有归档完成签名的7字节数组。
Property LastError As String (只读) 获取上次操作期间发生的最后一个错误。如果没有发生错误,返回空字符串。
Property PreserveDirectoryStructure As Boolean 获取/设置是否TargetFolder在提取期间保留归档的目录结构。 Event Progress(FileIdx As Long, Current As Double, Total As Double, Cancel As Boolean) 当有关当前运营进展的新信息可用时提出并给予用户取消操作的机会。FileIdx是正在提取/压缩的当前文件的索引。该索引可以与FileInfo属性一起使用。Current并且Total可以使用参数来计算完成的百分比。Cancel可以设置中止当前操作。 Event Error(Description As String, Source As String, Cancel As Boolean) 在当前操作期间出现意外情况时触发。Description包含用户Cancel在Progress事件中设置时被取消。Description包含数据错误。密码错误?如果提供错误的密码来提取加密档案。当输入/输出文件不可访问(权限,网络中断)时可以提高。设置Cancel指示是否完成操作或立即中止。 Event NewVolume(FileName As String) 在创建多卷归档以指示在压缩期间创建的新文件名时引发。如果要在错误或用户取消时删除卷,则很有用。
BeforeExtract(ByVal FileIdx As Long, FileName As String, SkipFile As Boolean, Cancel As Boolean) 在从存档提取文件之前提起。FileName可用于即时更改目标输出文件名。SkipFile可以用于根据不能用方法Filter参数实现的逻辑选择性地提取文件Extract。Cancel可以设置中止进一步提取。 |