VB聲明 |
|
Declare Function OpenFile Lib "kernel32" Alias "OpenFile" (ByVal lpFileName As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long |
|
說明 |
|
這個函數(shù)能執(zhí)行大量不同的文件操作。和這個函數(shù)相比,請優(yōu)先考慮win32的CreateFile函數(shù)(它能打開命名管道和控制Unicode文件名,同時不受128個字符的路徑名稱的限制) |
|
返回值 |
|
Long,如執(zhí)行成功,返回文件句柄。注意文件句柄可能是無效的;例如,假設指定了OF_EXIST標志,文件在函數(shù)返回前會關閉,但它打開時的句柄卻永遠不會返回。如果出錯,函數(shù)會返回HFILE_ERROR;此時,由lpReOpenBuff指定的OFSTRUCT結構的nErrCode會設置成發(fā)生的錯誤。表OpenFile-2(OFSTRUCT出錯代碼)對這些錯誤進行了總結。會設置GetLastError |
|
參數(shù)表 |
|
參數(shù) |
類型及說明 |
lpFileName |
String,欲打開文件的名字 |
lpReOpenBuff |
OFSTRUCT,該結構填充的數(shù)據(jù)包括與文件和操作結果有關的信息 |
wStyle |
Long,參考表OpenFile-1(OpenFile函數(shù)的標志常數(shù)表)總結的標志常數(shù)的組合,它決定了要采取的操作方式 |
wStyle常數(shù) |
說明 |
OF_CREATE |
創(chuàng)建指定的文件。如已經(jīng)存在,則將其縮減為零長度 |
OF_DELETE |
刪除指定的文件 |
OF_EXIST |
通過嘗試打開文件的做法,判斷一個文件是否存在。如文件存在,則將其關閉。此時,函數(shù)會返回文件打開時使用的句柄,但這個句柄是無效的。如指定的文件不存在,則返回一個負數(shù) |
OF_PARSE |
填寫lpReOpenBuff結構的內容,但不執(zhí)行其他任何操作 |
OF_PROMPT |
如文件不存在,則顯示一個消息框,在其中列出重試和取消按鈕 |
OF_READ |
以只讀方式打開文件 |
OF_READWRITE |
以可讀、可寫的方式打開文件 |
OF_REOPEN |
打開lpReOpenBuff結構內指定的文件,而不是用lpFileName參數(shù) |
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 |
函數(shù)無效 |
2 |
文件未找到 |
3 |
路徑未找到 |
4 |
無可用文件句柄 |
5 |
拒絕訪問 |
6 |
句柄無效 |
7 |
DOS內存沖突 |
8 |
無足夠內存完成操作 |
9 |
無效塊 |
A |
非法環(huán)境 |
B |
無效格式 |
C |
無效訪問 |
D |
無效數(shù)據(jù) |
|
|
F |
無效驅動器 |
10 |
當前目錄無效 |
11 |
設備有異 |
12 |
沒有更多的文件 |
13 |
寫保護錯 |
14 |
非法單位 |
15 |
驅動器未準備好 |
16 |
無效命令 |
17 |
CRC校驗錯 |
18 |
無效長度 |
19 |
搜索錯誤 |
1A |
磁盤不兼容MS-DOS |
1B |
扇區(qū)未找到 |
1C |
缺紙 |
1D |
寫錯誤 |
1E |
讀錯誤 |
1F |
驅動器常規(guī)錯誤 |
20 |
共享違例 |
21 |
文件鎖定違例 |
22 |
不正確的磁盤 |
23 |
無可用的文件控制塊 |
24 |
共享緩沖區(qū)溢出 |
32 |
不支持的設備 |
33 |
遠程設備不可用 |
34 |
重名錯誤 |
35 |
網(wǎng)絡路徑錯誤 |
36 |
網(wǎng)絡忙 |
37 |
非法設備 |
38 |
命令太多 |
39 |
網(wǎng)卡硬件錯誤 |
3A |
網(wǎng)絡響應錯誤 |
3B |
其他網(wǎng)絡錯誤 |
3C |
遠程適配器錯誤 |
3D |
打印隊列滿 |
3E |
后臺打印緩沖區(qū)滿 |
3F |
打印取消 |
40 |
刪除的網(wǎng)絡名 |
41 |
拒絕網(wǎng)絡訪問 |
42 |
無效設備類型 |
43 |
無效網(wǎng)絡名 |
44 |
名字太多 |
45 |
會話太多 |
46 |
共享暫停 |
47 |
請求未接受 |
48 |
重定向暫停 |
50 |
文件退出 |
51 |
文件控制塊重復 |
52 |
不能創(chuàng)建 |
53 |
中斷24錯誤 |
54 |
缺少結構 |
55 |
已經(jīng)分配 |
56 |
密碼無效 |
57 |
參數(shù)無效 |
58 |
網(wǎng)絡寫錯誤 |