LZOpenFileA 函数 (lzexpand.h)
创建、打开、重新打开或删除指定文件。
语法
INT LZOpenFileA(
[in] LPSTR lpFileName,
[out] LPOFSTRUCT lpReOpenBuf,
[in] WORD wStyle
);
参数
[in] lpFileName
文件的名称。
[out] lpReOpenBuf
指向 OFSTRUCT 结构的指针,该结构用于在首次打开文件时接收有关文件的信息。 该结构可用于对 LZOpenFile 函数的后续调用,以查看打开的文件。
此结构的 szPathName 成员包含原始设备制造商(OEM)字符集中的字符。
[in] wStyle
要执行的操作。 此参数可以是以下一个或多个值。
返回值
如果函数成功且 wStyle 参数指定的值未 OF_READ,则返回值是标识文件的句柄。 如果文件已压缩并打开,wStyle 设置为 OF_READ,则返回值是一个特殊的文件句柄。
如果函数失败,则返回值为 LZERROR_* 代码。 这些代码的值小于零。 此函数没有扩展的错误信息;请勿调用 getLastError 。
返回代码/值 | 描述 |
---|---|
|
标识源文件的句柄无效。 无法读取该文件。 |
|
已超出打开压缩文件的最大数目或无法分配本地内存。 |
言论
如果 wStyle 参数是 OF_READ 标志(或 OF_READ 和任何 OF_SHARE_* 标志),并且文件已压缩,LZOpenFile 调用 LZInit 函数,该函数执行解压缩操作所需的初始化。
此函数返回的句柄仅与 Lz32.dll中的函数兼容;它不应用于其他文件操作。
如果 LZOpenFile 无法打开由 lpFileName指定的文件,则在某些版本的 Windows 上,它尝试打开文件名几乎相同的文件,但最后一个字符替换为下划线(“”)。因此,如果尝试打开“MyProgram.exe”失败,LZOpenFile 尝试打开“MyProgram.ex”。 安装包通常将下划线替换为文件扩展名的最后一个字母,以指示文件已压缩。 例如,“MyProgram.exe”压缩可能命名为“MyProgram.ex_”。 若要确定打开的文件的名称(如果有),请检查 lpReOpenBuf 参数中 OFSTRUCT 结构的 szPathName 成员。
在 Windows 8 和 Windows Server 2012 中,以下技术支持此函数。
科技 | 支持 |
---|---|
服务器消息块 (SMB) 3.0 协议 | 是的 |
SMB 3.0 透明故障转移 (TFO) | 是的 |
具有横向扩展文件共享的 SMB 3.0 (SO) | 是的 |
群集共享卷文件系统 (CsvFS) | 是的 |
可复原文件系统 (ReFS) | 是的 |
Csv 将为压缩文件执行重定向的 IO。
注意
lzexpand.h 标头将 LZOpenFile 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows XP [仅限桌面应用] |
支持的最低服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | 窗户 |
标头 | lzexpand.h (包括 Windows.h) |
库 | Lz32.lib |
DLL | Lz32.dll |
另请参阅
OFSTRUCT