LZOpenFile函数创建,打开,重新打开或删除指定的文件。
INT LZOpenFile(
LPTSTR 【lpFileName】, | //要打开的文件名的地址 |
LPOFSTRUCT 【lpReOpenBuf】, | //打开文件结构的地址 |
WORD 【wStyle】 | //采取行动 |
); |
参数
【lpFileName】
指向指定文件名称的字符串。
【lpReOpenBuf】
指向OFSTRUCT结构,即在文件首次打开时接收有关文件的信息。该结构可用于后续调用LZOpenFile函数以引用打开的文件。
此结构的szPathName成员包含原始设备制造商(OEM)字符集中的字符。
【wStyle】
指定要执行的操作。此参数可以是以下值的组合:
值 | 含义 |
OF_CANCEL | 忽略。在基于Win32的应用程序编程接口(API)中,OF_PROMPT样式产生一个包含取消按钮的对话框。 |
OF_CREATE | 直接LZOpenFile创建一个新文件。如果文件已经存在,它将被截断为零长度。 |
OF_DELETE | 删除文件。 |
OF_EXIST | 打开文件,然后关闭它来测试文件的存在。 |
OF_PARSE | 填写OFSTRUCT结构,但不执行其他操作。 |
OF_PROMPT | 如果请求的文件不存在,显示一个对话框。该对话框通知用户Windows无法找到该文件,它包含重试和取消按钮。选择取消按钮指示LZOpenFile返回“找不到文件”错误消息。 |
OF_READ | 打开文件仅供阅读。 |
OF_READWRITE | 打开文件进行阅读和写作。 |
OF_REOPEN | 使用重新打开缓冲区中的信息打开文件。 |
OF_SHARE_DENY_NONE | 打开文件,而不会拒绝其他进程读取或写入文件的访问权限。如果文件已被任何其他进程的兼容模式打开,LZOpenFile将失败。 |
OF_SHARE_DENY_READ | 打开文件并拒绝其他进程读取该文件的访问权限。如果文件已经以兼容性模式打开或已经被其他进程的读取访问打开,则LZOpenFile将失败。 |
OF_SHARE_DENY_WRITE | 打开该文件,并拒绝其他进程对该文件的写入访问。如果文件已经以兼容性模式打开或已经被任何其他进程的写入访问打开,则LZOpenFile将失败。 |
OF_SHARE_EXCLUSIVE | 以独占模式打开文件,拒绝其他进程对文件的读取和写入访问。如果文件已经在任何其他模式下打开以进行读取或写入访问,即使在当前进程中,LZOpenFile也将失败。 |
OF_WRITE | 打开文件仅供写入。 |
返回值
如果函数成功并且【wStyle】参数指定的值不是OF_READ,则返回值是标识文件的句柄。如果文件被压缩并打开,【wStyle】设置为OF_READ,返回值是一个特殊的文件句柄。
如果函数失败,则返回值为LZERROR_ *代码。这些代码的值小于零。请注意,LZOpenFile既不调用SetLastError也不调用SetLastErrorEx;因此,它的失败不会影响线程的最后一个错误代码。
以下是LZOpenFile失败后可以返回的LZERROR_ *代码的列表:
值 | 含义 |
LZERROR_BADINHANDLE | 标识源文件的句柄无效。该文件无法读取。 |
LZERROR_GLOBALLOC | 已经超过打开的压缩文件的最大数量,或者无法分配本地内存。 |
备注
如果【wStyle】参数是OF_READ标志(或OF_READ和任何OF_SHARE_标志)并且文件被压缩,LZOpenFile将调用LZInit函数,该函数执行解压缩操作所需的初始化。
该函数返回的句柄仅与LZEXPAND.DLL中的函数兼容;它不应该用于其他文件操作。
也可以看看