SevenZip 是内置压缩模块,可以压缩和解压许多 支持的方法: 7z、XZ、BZIP2、GZIP、TAR、ZIP 和 WIM。
此外,它还可以解压 AR、ARJ、CAB、CHM、CPIO、CramFS、DMG、EXT、FAT、GPT、HFS、IHEX、ISO、LZH、LZMA、MBR、MSI、NSIS、NTFS、QCOW2、RAR、RPM、SquashFS、UDF、UEFI、VDI、VHD、VMDK、WIM、XAR 和 Z。
它还可以创建自解压可执行文件。
7-Zip 由 Igor Pavlov 创建 - www.7-zip.org。
DLL 版本编译自 https://github.com/ytakanashi/7-zip32_ungarbled。
SevenZip() 从资源中加载 DLL 模块,并返回包含各方法的对象。
OutputVar := SevenZip(Hwnd)
用于存储对象的变量名称。该对象将用于压缩、解压缩和其他 7-Zip 功能。
GUI hwnd。当 7-Zip 执行压缩或解压缩时,将禁用与该 GUI 的交互。
Add 将文件添加到压缩包;如果压缩包不存在,则会创建它。
OutputVar := zip.Add(Archive, Files, Options)
用于存储 7-Zip 报告的结果的变量名称。
压缩包文件名,或要添加文件的目标路径。
要添加到压缩包的一个或多个文件、路径或文件模式。
传递多个文件时,需要用换行符分隔,例如 “C:\File1.txt`nC:\File`nC:\MyDir”
请参阅 7-Zip Add 命令帮助中支持的开关。
自动将文件添加到压缩包的方法。
如果压缩包已经存在,将按给定选项重新压缩(提取、删除并重新压缩);如果使用了不同方法,也会进行转换,原始压缩包会被删除!
如果给定的文件或路径不是压缩包或文件夹,将使用相同路径/名称并追加方法名作为扩展名来压缩它。
OutputVar := zip.AutoZip(Archive, Method, CompressionLevel, Threads, Options)
检查文件是否为压缩包文件(检查标头),并可选择检查每个文件的内容和 CRC。
OutputVar := zip.Check(Archive, Mode)
如果文件是压缩包,则存储 true / 1;如果文件不是压缩包或压缩包已损坏,则存储 false / 0 的变量名称。
现有压缩包的文件名或路径。
检查方式:
默认值:0。
停止向先前通过 SetOwnerWindow 定义的窗口发送消息。
OutputVar := zip.ClearOwnerWindow()
变量名称,成功时存储 true / 1,如果没有设置窗口来接收消息,则存储 false / 0。
关闭先前通过 Open 打开的压缩包。
OutputVar := zip.Check(ArchiveHandle)
如果文件是压缩包,则存储 true / 1;如果文件不是压缩包或压缩包已损坏,则存储 false / 0 的变量名称。
先前由 Open 返回的句柄。
运行 7-Zip 命令行。请参阅 命令行语法。
OutputVar := zip.Cmd(CommandLine)
用于存储 7-Zip 报告的结果的变量名称。
所有功能都可以通过命令行运行。请参阅 命令行语法。
显示版本和版权信息。
zip.ConfigDialog()
Delete 压缩包中的文件。
OutputVar := zip.Delete(Archive, Files, Options)
用于存储 7-Zip 报告的结果的变量名称。
要从中删除文件的压缩包文件名或路径。
要从压缩包中删除的一个或多个文件、路径或文件模式。
传递多个文件时,需要用换行符分隔,例如 “C:\File1.txt`nC:\File`nC:\MyDir”
请参阅 7-Zip Delete() 帮助中支持的开关。
Extract 从压缩包中提取文件,并保留完整路径。
OutputVar := zip.Extract(Archive, Dir, Files, Options)
用于存储 7-Zip 报告的结果的变量名称。
要从中提取文件的压缩包文件名或路径。
输出目录。
要从压缩包中提取的一个或多个文件、路径或文件模式。
传递多个文件时,需要用换行符分隔,例如 “C:\File1.txt`nC:\File`nC:\MyDir”
请参阅 7-Zip Extract() 帮助中支持的开关。
Extract 从压缩包中提取文件,并保留完整路径。
此命令支持提取最大 4 GB 的文件;更大的文件请使用 ExtractMemEx。
OutputVar := zip.Extract(Buffer, Archive, File, Options)
用于存储缓冲区大小(未压缩文件大小)的变量名称。
ByRef 变量,用于接收提取的数据。
要从中提取文件的压缩包文件名或路径。
要从压缩包中提取的文件。
请参阅 7-Zip Extract() 帮助中支持的开关。
Extract 从压缩包中提取文件,并保留完整路径。
OutputVar := zip.Extract(Buffer, Archive, File, Options)
用于存储缓冲区大小(未压缩文件大小)的变量名称。
ByRef 变量,用于接收提取的数据。
要从中提取文件的压缩包文件名或路径。
要从压缩包中提取的文件。
请参阅 7-Zip Extract() 帮助中支持的开关。
Extract 从压缩包中提取文件,并保留完整路径。
OutputVar := zip.ExtractRoot(Archive, Dir, Files, Options)
用于存储 7-Zip 报告的结果的变量名称。
要从中提取文件的压缩包文件名或路径。
输出目录。
要从压缩包中提取的一个或多个文件、路径或文件模式。
传递多个文件时,需要用换行符分隔,例如 “C:\File1.txt`nC:\File`nC:\MyDir”
请参阅 7-Zip Extract() 帮助中支持的开关。
查找压缩包中的第一个文件。另请参阅 FindNext。
OutputVar := zip.FindFirst(ArchiveHandle, FilePattern)
用于存储 INDIVIDUALINFO 结构的变量的名称。
typedef struct {
DWORD dwOriginalSize;
DWORD dwCompressedSize;
DWORD dwCRC;
UINT uFlag;
UINT uOS Type;
WORT wRatio;
WORT wDate;
WORT wTime;
char szFileName [FNAME_MAX32 + 1];
char dummy1 [3];
char szAttribute [8];
char szMode [8];
} INDIVIDUALINFO;
先前由 Open 返回的句柄。
用于搜索的文件模式,FindNext 将继续使用相同的文件模式。
查找压缩包中的下一个文件。
OutputVar := zip.FindNext(ArchiveHandle, lpINDIVIDUALINFO)
变量名,成功时存储 0,如果找不到更多文件则存储 -1。
先前由 Open 返回的句柄。
指向用于搜索的 INDIVIDUALINFO 结构的指针。
获取压缩包访问时间。
OutputVar := zip.GetArcAccessTimeEx(ArchiveHandle, lpFILETIME)
成功时存储 true / 1 或出错时存储 false / 0 的变量名称。
先前由 Open 返回的句柄。
指向 FILETIME 结构的指针以接收结果。通过 getvar(time:=0) 将 64 位值保存在变量中。
获取压缩包的压缩大小。
OutputVar := zip.GetArcCompressedSize(ArchiveHandle)
用于存储压缩大小的变量名称;如果压缩包是固实压缩包,则返回 -1,此时需要使用 GetArcCompressedSizeEx。
先前由 Open 返回的句柄。
获取压缩包的压缩大小。
OutputVar := zip.GetArcCompressedSizeEx(ArchiveHandle, lpINT64)
成功时存储 true / 1 或出错时存储 false / 0 的变量名称。
先前由 Open 返回的句柄。
指向用于接收压缩大小的变量的指针。传递 getvar(size:=0) 或指向缓冲区的指针。
获取压缩包创建时间。
OutputVar := zip.GetArcAccessTimeEx(ArchiveHandle, lpFILETIME)
成功时存储 true / 1 或出错时存储 false / 0 的变量名称。
先前由 Open 返回的句柄。
指向 FILETIME 结构的指针以接收结果。通过 getvar(time:=0) 将 64 位值保存在变量中。
获取压缩包日期。
OutputVar := zip.GetArcDate(ArchiveHandle)
用于存储 DOS 格式压缩包日期的变量名称,如果出错则为 -1。
先前由 Open 返回的句柄。
获取压缩包文件名。
OutputVar := zip.GetArcDate(ArchiveHandle)
用于存储压缩包文件名的变量名称。
先前由 Open 返回的句柄。
获取压缩包大小。
OutputVar := zip.GetArcFileSize(ArchiveHandle)
用于存储压缩包大小的变量名称,如果出错则为 -1。
先前由 Open 返回的句柄。
获取压缩包大小。
OutputVar := zip.GetArcFileSizeEx(ArchiveHandle, lpINT64)
成功时存储 true / 1 或出错时存储 false / 0 的变量名称。
先前由 Open 返回的句柄。
指向缓冲区的指针以获取大小。使用 getvar(size:=0) 或传递缓冲区指针。
获取压缩包的未压缩大小。
OutputVar := zip.GetArcOriginalSize(ArchiveHandle)
用于存储压缩包大小的变量名称,如果出错则为 -1。
先前由 Open 返回的句柄。
获取压缩包的未压缩大小。
OutputVar := zip.GetArcOriginalSizeEx(ArchiveHandle, lpINT64)
成功时存储 true / 1 或出错时存储 false / 0 的变量名称。
先前由 Open 返回的句柄。
指向缓冲区的指针以获取大小。使用 getvar(size:=0) 或传递缓冲区指针。
获取压缩包的未压缩大小。
OutputVar := zip.GetArcOSType(ArchiveHandle)
用于存储操作系统类型的变量名称。
0 : MS-DOS 1 : PRIMOS 2 : UNIX 3 : AMIGA 4 : MAC-OS 5 : OS/2 6 : APPLE GS 7 : ATARI ST 8 : NEXT 9 : VAX VMS 10: In addition. 11: OS9 12: OS/68K 13: OS/386 14: HUMAN 15: CP/M 16: FLEX 17: Runser 18: VM CMS 19: Z SYSTEM 20: TOPS20 21: Windows NTFS -1: 错误。
先前由 Open 返回的句柄。
获取压缩包的压缩率,500 表示 50%。
OutputVar := zip.GetArcRatio(ArchiveHandle)
用于存储压缩比的变量名称(固实压缩包为 0),如果出错则为 -1。
先前由 Open 返回的句柄。
获取 DOS 格式的压缩包时间。
OutputVar := zip.GetArcTime(ArchiveHandle)
用于存储 MSDOS 格式压缩包时间的变量名称,如果出错则为 -1。
先前由 Open 返回的句柄。
获取压缩包修改时间。
OutputVar := zip.GetArcWriteTimeEx(ArchiveHandle, lpFILETIME)
成功时存储 true / 1 或出错时存储 false / 0 的变量名称。
先前由 Open 返回的句柄。
指向 FILETIME 结构的指针以接收时间。通过 getvar(time:=0) 将 64 位值保存在变量中。
获取当前文件的属性,该文件由 FindFirst 或 FindNext 找到。
OutputVar := zip.GetAttribute(ArchiveHandle)
用于存储文件属性的变量名称,如果出错则为 -1。
0x01 FA_RDONLY 只读文件。
0x02 FA_HIDDEN 隐藏文件。
0x04 FA_SYSTEM 系统文件。
0x08 FA_LABEL 卷标。
0x10 FA_DIREC 目录。
0x20 FA_ARCH 存档位。
0x40 FA_ENCRYPTED 文件受密码保护。
先前由 Open 返回的句柄。
检查 7-Zip 是否处于后台模式。
OutputVar := zip.GetBackGroundMode()
如果 7-Zip 处于后台模式,则存储 true / 1 的变量名称,否则存储 false / 0。
获取当前文件的压缩大小,该文件由 FindFirst 或 FindNext 找到。
OutputVar := zip.GetCompressedSize(ArchiveHandle)
用于存储压缩文件大小的变量名称,如果出错则为 -1。
先前由 Open 返回的句柄。
获取当前文件的压缩大小,该文件由 FindFirst 或 FindNext 找到。
OutputVar := zip.GetArcWriteTimeEx(ArchiveHandle, lpINT64)
成功时存储 true / 1 或出错时存储 false / 0 的变量名称。
先前由 Open 返回的句柄。
指向缓冲区的指针以接收压缩大小。通过 getvar(size:=0) 将 64 位值保存在变量中。
获取当前文件的 CRC,该文件由 FindFirst 或 FindNext 找到。
OutputVar := zip.GetCRC(ArchiveHandle)
用于存储代码页标识符的变量的名称。
先前由 Open 返回的句柄。
获取代码页标识符。
OutputVar := zip.GetCP()
用于存储代码页标识符的变量的名称。
获取光标旋转速度。
OutputVar := zip.GetCursorInterval()
存储光标速度的变量名称。
检查光标在 7-Zip 操作中是否可见。
OutputVar := zip.GetCursorMode()
用于存储 true / 1(如果可见)或 false / 0(如果隐藏)的变量名称。
获取当前文件的日期,该文件由 FindFirst 或 FindNext 找到。
OutputVar := zip.GetDate(ArchiveHandle)
用于存储 MSDOS 格式日期的变量名称。
先前由 Open 返回的句柄。
获取压缩包受密码保护且未指定密码时使用的默认密码。
OutputVar := zip.GetDefaultPassword(ArchiveHandle)
用于存储密码的变量的名称。
先前返回的句柄 Open。
当没有给出句柄时,返回全局密码。
获取压缩包中的文件数量。
OutputVar := zip.GetFileCount(Archive)
用于存储压缩包中文件数量的变量名称。
压缩包的文件名或路径。
获取当前文件的文件名,该文件由 FindFirst 或 FindNext 找到。
OutputVar := zip.GetFileName(ArchiveHandle)
用于存储文件名的变量的名称。
先前返回的句柄 Open。
当没有给出句柄时,返回全局密码。
获取当前文件的文件名,该文件由 FindFirst 或 FindNext 找到。
OutputVar := zip.GetLastError(lpINT)
用于存储错误代码的变量的名称。
指向保存错误代码的缓冲区的指针。使用 getvar(err:=0) 将代码保存在变量中。
获取当前文件的压缩方法名称,该文件由 FindFirst 或 FindNext 找到。
OutputVar := zip.GetMethod(ArchiveHandle)
用于存储压缩方法的变量的名称。
先前返回的句柄 Open。
当没有给出句柄时,返回全局密码。
获取当前文件的未压缩大小,该文件由 FindFirst 或 FindNext 找到。
OutputVar := zip.GetOriginalSize(ArchiveHandle)
用于存储未压缩文件大小的变量名称,如果出错则为 -1。
先前由 Open 返回的句柄。
获取当前文件的未压缩大小,该文件由 FindFirst 或 FindNext 找到。
OutputVar := zip.GetOriginalSizeEx(ArchiveHandle, lpINT64)
成功时存储 true / 1 或出错时存储 false / 0 的变量名称。
先前由 Open 返回的句柄。
指向缓冲区的指针,用于接收未压缩的大小。使用 getvar(size:=0) 将 64 位值保存在变量中。
获取当前文件的操作系统类型,该文件由 FindFirst 或 FindNext 找到。
目前除非出现错误,否则仅返回 0。
OutputVar := zip.GetOSType(ArchiveHandle)
变量名称,成功时在其中存储 0,任何其他值表示错误。
先前由 Open 返回的句柄。
获取当前文件的压缩比,该文件由 FindFirst 或 FindNext 找到。
500 表示 50%。
OutputVar := zip.GetRatio(ArchiveHandle)
用于存储压缩比的变量名称(固实压缩包为 0),如果出错则为 -1。
先前由 Open 返回的句柄。
检查 7-Zip 当前是否正在进行压缩或解压缩操作。
OutputVar := zip.GetRunning()
如果 7-Zip 当前正在运行,则在其中存储 true / 1 的变量名称,否则存储 false / 0。
获取 7-Zip 的子版本。主版本请参阅 GetVersion。
OutputVar := zip.GetSubVersion()
用于存储 7-Zip 模块子版本的变量名称。
获取当前文件的时间戳,该文件由 FindFirst 或 FindNext 找到。
OutputVar := zip.GetTime(ArchiveHandle)
用于存储 MSDOS 格式时间戳的变量名称,如果出错则为 -1。
先前由 Open 返回的句柄。
获取压缩包类型。
OutputVar := zip.GetType(Archive)
用于存储压缩包类型的变量名称,如果出错则为 -1。
压缩包的文件名或路径。
获取 7-Zip 的主版本。子版本请参阅 GetSubVersion。
OutputVar := zip.GetVersion()
用于存储 7-Zip 模块主版本的变量名称。
获取当前文件的 DOS 格式修改时间,该文件由 FindFirst 或 FindNext 找到。
OutputVar := zip.GetWriteTime(ArchiveHandle)
用于存储 MSDOS 格式的文件时间的变量名称,如果出错则为 -1。
先前由 Open 返回的句柄。
获取当前文件的 DOS 格式修改时间,该文件由 FindFirst 或 FindNext 找到。
OutputVar := zip.GetWriteTimeEx(ArchiveHandle, lpFILETIME)
成功时存储 true / 1 或出错时存储 false / 0 的变量名称。
先前由 Open 返回的句柄。
指向 FILETIME 结构的指针以接收时间。通过 getvar(time:=0) 将 64 位值保存在变量中。
为文件创建 Hash。
OutputVar := zip.Hash(CRC, Files, Options)
用于存储 7-Zip 报告的结果的变量名称。
CRC 方法。支持的方法:CRC32、CRC64、SHA1、SHA256、BLAKE2sp。默认方法是 CRC32
要计算哈希值的一个或多个文件、路径或文件模式。
当传递多个文件时,需要用换行符分隔,例如 “C:\File1.txt`nC:\File`nC:\MyDir”
请参阅 7-Zip Hash() 帮助中支持的开关。
检查压缩包是否为自解压压缩包。目前除非出现错误,否则仅返回 0。
OutputVar := zip.IsSFXFile(ArchiveHandle)
发生错误时存储 0 或 -1 的变量名称。
先前由 Open 返回的句柄。
停止监视来自 7-Zip 模块的消息。参见 SetOwnerWindowEx。
OutputVar := zip.KillOwnerWindowEx(WindowHandle)
成功时存储 true / 1 或句柄不匹配时存储 false / 0 的变量名称。
当前正在监视消息的窗口句柄。
停止监视来自 7-Zip 模块的消息。参见 SetOwnerWindowEx64。
OutputVar := zip.KillOwnerWindowEx64(WindowHandle)
成功时存储 true / 1 或句柄不匹配时存储 false / 0 的变量名称。
当前正在监视消息的窗口句柄。
列出压缩包中的文件和其他信息。
OutputVar := zip.List(Archive, FilePattern)
用于存储数组的变量名称,每个元素将包含一个包含[日期、时间、文件属性、未压缩大小、压缩大小、文件路径]的数组。
要过滤的文件模式。参见 通配符。
打开压缩包。
OutputVar := zip.Open(Archive, Mode)
用于存储 ArchiveHandle 的变量的名称。
压缩包的文件名或路径。
支持以下标志:
显示密码窗口并返回输入的密码。
OutputVar := zip.PasswordDialog()
用于存储密码的变量的名称。
Rename 压缩包中的文件。
OutputVar := zip.Update(Archive, Files, Options)
用于存储 7-Zip 报告的结果的变量名称。
要更新的压缩包文件名或路径。
要在压缩包中重命名的一对或多对文件或路径(nameFrom nameTo)。
文件需要用换行符分隔,例如 “文件1.txt`n文件2`nMyDir\`nMyDir2\”
请参阅 7-Zip Rename() 帮助中支持的开关。
设置 7-Zip 的背景模式。当前该值已保存但未在内部使用。
OutputVar := zip.SetBackGroundMode(BackgroundMode)
用于存储后台模式的变量的名称。
1 表示后台模式,0 表示非后台模式。
设置压缩包的代码页。
OutputVar := zip.SetCP(CodePage)
成功时存储 true / 1,代码页小于 1 时存储 false / 0 的变量名称。
Open 使用的代码页。
设置光标旋转速度。
OutputVar := zip.SetCursorInterval(Interval)
用于存储 true / 1 的变量名称。
光标的旋转速度(以毫秒为单位)。
设置光标在 7-Zip 操作中是否可见。
OutputVar := zip.SetCursorMode(CursorMode)
用于存储 true / 1 的变量名称。
True / 1 显示光标,False / 0 隐藏光标。
设置压缩包受密码保护且未指定密码时使用的默认密码。
OutputVar := zip.SetDefaultPassword(ArchiveHandle, Password)
变量名称,成功时存储 0,其他值表示错误。
先前返回的句柄 Open。
当没有给出句柄时,将设置全局密码。
用于进一步操作的密码。
当 7-Zip 处于压缩或解压缩操作时设置窗口消息。使用 ClearOwnerWindow 停止查看消息。
要监视消息,请使用 wm_arcextract:=RegisterWindowMessage("wm_arcextract") 返回的消息号调用 OnMessage。
OutputVar := zip.SetOwnerWindow(WindowHandle)
成功时存储 true / 1 或出错时存储 false / 0 的变量名称。
将接收来自 7-Zip 模块的消息的窗口句柄。
wParam will contain state of operation:
0: BEGIN
1: INPROCESS
2: END
3: OPEN
4: COPY
5: SKIP
lParam will contain a pointer to EXTRACTINGINFO Structure:
typedef struct {
DWORD dwFileSize; // 要压缩/解压缩的全部数据总大小
DWORD dwWriteSize; // 已处理的压缩/解压缩数据大小
char szSourceFileName [FNAME_MAX32 + 1]; // 源文件名 (512 + 1)
char dummy1 [3]; // 填充
char szDestFileName [FNAME_MAX32 + 1]; // 目标文件名 (512 + 1)
char dummy [3]; // 填充
} EXTRACTINGINFO;
当 7-Zip 处于压缩或解压缩操作时设置窗口消息。使用 KillOwnerWindowEx 停止查看消息。
要监视消息,请使用 wm_arcextract:=RegisterWindowMessage("wm_arcextract") 返回的消息号调用 OnMessage。
OutputVar := zip.SetOwnerWindowEx(WindowHandle, LPARCHIVERPROC)
成功时存储 true / 1 或出错时存储 false / 0 的变量名称。
将接收来自 7-Zip 模块的消息的窗口句柄。
使用 RegisterCallback 创建的回调函数具有以下参数:
typedef BOOL CALLBACK ARCHIVERPROC(HWND _hwnd, UINT _uMsg,
UINT _nState, LPVOID _lpEis);
hwnd 窗口句柄。
Msg wm_arcextract。
State 操作模式。
0: BEGIN
1: INPROCESS
2: END
3: OPEN
4: COPY
5: SKIP
pEIS LPEXTRACTINGINFOEX
typedef struct {
EXTRACTINGINFO exinfo; // EXTRACTINGINFO 结构
DWORD dwCompressedSize; // 压缩大小
DWORD dwCRC; // CRC 校验和
UINT uOS Type; // 操作系统
WORD wRatio; // 压缩比
WORD wDate; // MSDOS 格式的修改日期
WORD wTime; // MSDOS 格式的修改时间
char szAttribute [8]; // 文件属性
char szMode [8]; // 压缩方式
} EXTRACTINGINFOEX;
ARCHIVERPROC 必须返回 true 以继续操作,返回 false 以取消。当 7-Zip 处于压缩或解压缩操作时设置窗口消息。使用 KillOwnerWindowEx64 停止查看消息。
要监视消息,请使用 wm_arcextract:=RegisterWindowMessage("wm_arcextract") 返回的消息号调用 OnMessage。
OutputVar := zip.SetOwnerWindowEx64(WindowHandle, LPARCHIVERPROC, StructSize)
成功时存储 true / 1 或出错时存储 false / 0 的变量名称。
将接收来自 7-Zip 模块的消息的窗口句柄。
使用 RegisterCallback 创建的回调函数具有以下参数:
typedef BOOL CALLBACK ARCHIVERPROC(HWND _hwnd, UINT _uMsg,
UINT _nState, LPVOID _lpEis);
hwnd 窗口句柄。
Msg wm_arcextract。
State 操作模式。
0: BEGIN
1: INPROCESS
2: END
3: OPEN
4: COPY
5: SKIP
pEIS LPEXTRACTINGINFO、LPEXTRACTINGINFOEX、LPEXTRACTINGINFOEX32 或 LPEXTRACTINGINFOEX64
typedef struct {
DWORD dwStructSize; // 结构大小
EXTRACTINGINFO exinfo; // EXTRACTINGINFO 结构
DWORD dwFileSize; // 要压缩/解压缩的全部数据总大小
DWORD dwCompressedSize; // 压缩包的压缩后总大小
DWORD dwWriteSize; // 已处理的压缩/解压缩数据大小
DWORD dwAttributes; // 文件属性
DWORD dwCRC; // CRC 校验和
UINT uOS Type; // 操作系统
WORD wRatio; // compression ratio
FILETIME ftCreateTime; // 创建日期和时间
FILETIME ftAccessTime; // 访问日期和时间
FILETIME ftWriteTime; // 修改日期和时间
char szMode [8]; // 压缩方式
char szSourceFileName [FNAME_MAX32 + 1]; // 源文件名 (512 + 1)
char dummy1 [3]; // 填充
char szDestFileName [FNAME_MAX32 + 1]; // 目标文件名 (512 + 1)
char dummy2 [3]; // 填充
} EXTRACTINGINFOEX32;
typedef struct {
DWORD dwStructSize; // 结构大小
EXTRACTINGINFO exinfo; // EXTRACTINGINFO 结构
ULHA_INT64 llFileSize; // 要压缩/解压缩的全部数据总大小
ULHA_INT64 llCompressedSize; // 压缩包的压缩后总大小
ULHA_INT64 llWriteSize; // 已处理的压缩/解压缩数据大小
DWORD dwAttributes; // 文件属性
DWORD dwCRC; // CRC 校验和
UINT uOS Type; // 操作系统
WORT wRatio; // 压缩比
FILETIME ftCreateTime; // 创建日期和时间
FILETIME ftAccessTime; // 访问日期和时间
FILETIME ftWriteTime; // 修改日期和时间
char szMode [8]; // 压缩方式
char szSourceFileName [FNAME_MAX32 + 1]; // 源文件名 (512 + 1)
char dummy1 [3]; // 填充
char szDestFileName [FNAME_MAX32 + 1]; // 目标文件名 (512 + 1)
char dummy2 [3]; // 填充
} EXTRACTINGINFOEX64;
ARCHIVERPROC 必须返回 true 以继续操作,返回 false 以取消。要使用的结构的大小。根据大小,它将是 EXTRACTINGINFO、EXTRACTINGINFOEX、EXTRACTINGINFOEX32 或 EXTRACTINGINFOEX64
设置线程优先级。
OutputVar := zip.SetPriority(Priority)
成功时存储 true / 1 或出错时存储 false / 0 的变量名称。
使用与 SetThreadPriority 相同的值。
设置 Unicode 模式。
OutputVar := zip.SetUnicodeMode(UseUnicode)
成功时存储 true / 1 或出错时存储 false / 0 的变量名称。
True / 1 使用 UTF-8,False / 0 使用 OEM 代码。
显示自解压对话框并返回输入的值。
OutputVar := zip.SfxConfigDialog()
用于存储输入值的变量名称。
提取用于自解压压缩包的可执行文件。
OutputVar := zip.SfxFileStoring(FilePath)
成功时存储 true / 1 或出错时存储 false / 0 的变量名称。
SFX 模块提取到的路径。
Update 压缩包中的文件。
OutputVar := zip.Update(Archive, Files, Options)
用于存储 7-Zip 报告的结果的变量名称。
要更新的压缩包文件名或路径。
要在压缩包中更新的一个或多个文件、路径或文件模式。
传递多个文件时,需要用换行符分隔,例如 “C:\File1.txt`nC:\File`nC:\MyDir”
请参阅 7-Zip Update() 帮助中支持的开关。
Test 压缩包或压缩包中的文件。
OutputVar := zip.Test(Archive, Files, Options)
用于存储 7-Zip 报告的结果的变量名称。
要测试的压缩包文件名或路径。
将测试的一个或多个文件、路径或文件模式。
当传递多个文件时,需要用换行符分隔,例如 “C:\File1.txt`nC:\File`nC:\MyDir”
请参阅 7-Zip Test() 帮助中支持的开关。