OpenFile
VB声明
Declare Function OpenFile Lib "kernel32" Alias "OpenFile" (ByVal lpFileName As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long
说明
这个函数能执行大量不同的文件操作。和这个函数相比,请优先考虑win32的CreateFile函数(它能打开命名管道和控制Unicode文件名,同时不受128个字符的路径名称的限制)
返回值
Long,如执行成功,返回文件句柄。注意文件句柄可能是无效的;例如,假设指定了OF_EXIST标志,文件在函数返回前会关闭,但它打开时的句柄却永远不会返回。如果出错,函数会返回HFILE_ERROR;此时,由lpReOpenBuff指定的OFSTRUCT结构的nErrCode会设置成发生的错误。表OpenFile-2OFSTRUCT出错代码)对这些错误进行了总结。会设置GetLastError
参数表
参数 类型及说明
lpFileName String,欲打开文件的名字
lpReOpenBuff OFSTRUCT,该结构填充的数据包括与文件和操作结果有关的信息
wStyle Long,参考表OpenFile-1(OpenFile函数的标志常数表)总结的标志常数的组合,它决定了要采取的操作方式
表OpenFile-1(OpenFile函数的标志常数表)
wStyle常数 说明
OF_CREATE 创建指定的文件。如已经存在,则将其缩减为零长度
OF_DELETE 删除指定的文件
OF_EXIST 通过尝试打开文件的做法,判断一个文件是否存在。如文件存在,则将其关闭。此时,函数会返回文件打开时使用的句柄,但这个句柄是无效的。如指定的文件不存在,则返回一个负数
OF_PARSE 填写lpReOpenBuff结构的内容,但不执行其他任何操作
OF_PROMPT 如文件不存在,则显示一个消息框,在其中列出重试和取消按钮
OF_READ 以只读方式打开文件
OF_READWRITE 以可读、可写的方式打开文件
OF_REOPEN 打开lpReOpenBuff结构内指定的文件,而不是用lpFileName参数
OF_SEARCH 强迫windows查找文件——即使指定了特定的路径
OF_SHARE_COMPAT 文件可由多个应用程序打开多次
OF_SHARE_DENY_NONE 可打开文件,以便由其他程序读写
OF_SHARE_DENY_READ 禁止其他程序读写文件内容
OF_SHARE_DENY_WRITE 其他程序可以读文件,但不能写文件
OF_SHARE_EXCLUSIVE 其他任何一个程序都不能再打开这个文件
OF_WRITE 文件以只写模式打开
表OpenFile-2OFSTRUCT出错代码)
十六进制值 说明 十六进制值 说明
1 函数无效 2 文件未找到
3 路径未找到 4 无可用文件句柄
5 拒绝访问 6 句柄无效
7 DOS内存冲突 8 无足够内存完成操作
9 无效块 A 非法环境
B 无效格式 C 无效访问
D 无效数据    
F 无效驱动器 10 当前目录无效
11 设备有异 12 没有更多的文件
13 写保护错 14 非法单位
15 驱动器未准备好 16 无效命令
17 CRC校验错 18 无效长度
19 搜索错误 1A 磁盘不兼容MS-DOS
1B 扇区未找到 1C 缺纸
1D 写错误 1E 读错误
1F 驱动器常规错误 20 共享违例
21 文件锁定违例 22 不正确的磁盘
23 无可用的文件控制块 24 共享缓冲区溢出
32 不支持的设备 33 远程设备不可用
34 重名错误 35 网络路径错误
36 网络忙 37 非法设备
38 命令太多 39 网卡硬件错误
3A 网络响应错误 3B 其他网络错误
3C 远程适配器错误 3D 打印队列满
3E 后台打印缓冲区满 3F 打印取消
40 删除的网络名 41 拒绝网络访问
42 无效设备类型 43 无效网络名
44 名字太多 45 会话太多
46 共享暂停 47 请求未接受
48 重定向暂停 50 文件退出
51 文件控制块重复 52 不能创建
53 中断24错误 54 缺少结构
55 已经分配 56 密码无效
57 参数无效 58 网络写错误

Top