OpenFile

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-2(OFSTRUCT出错代码)

十六进制值

说明

十六进制值

说明

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