複製鏈接
請複製以下鏈接發送給好友

OpenFile

鎖定
OpenFile是程序編寫時用於打開文件的函數,能執行大量不同的文件操作。
中文名
打開文件
外文名
OpenFile
用    途
程序函數
相似文件
CreateFile
返回值
Long

目錄

OpenFile簡介

OpenFileVB聲明

Declare Function OpenFile Lib "kernel32" Alias "OpenFile" (ByVal lpFileName As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long

OpenFile説明

這個函數能執行大量不同的文件操作。和這個函數相比,請優先考慮win32CreateFile函數(它能打開命名管道和控制Unicode文件名,同時不受128個字符的路徑名稱的限制)

OpenFile返回值

Long,如執行成功,返回文件句柄。注意文件句柄可能是無效的;例如,假設指定了OF_EXIST標誌,文件在函數返回前會關閉,但它打開時的句柄卻永遠不會返回。如果出錯,函數會返回HFILE_ERROR;此時,由lpReOpenBuff指定的OFSTRUCT結構的nErrCode會設置成發生的錯誤。表OpenFile-2(OFSTRUCT出錯代碼)對這些錯誤進行了總結。會設置GetLastError

OpenFile參數表

參數 類型及説明
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 網絡寫錯誤