VB聲明 |
||
Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long |
||
說明 |
||
這是一個全功能的例程,可打開和創(chuàng)建文件、管道、郵槽、通信服務、設(shè)備以及控制臺 |
||
返回值 |
||
Long,如執(zhí)行成功,則返回文件句柄。INVALID_HANDLE_VALUE表示出錯,會設(shè)置GetLastError。即使函數(shù)成功,但若文件存在,且指定了CREATE_ALWAYS 或 OPEN_ALWAYS,GetLastError也會設(shè)為ERROR_ALREADY_EXISTS |
||
參數(shù)表 |
||
參數(shù) |
類型及說明 |
|
lpFileName |
String,要打開的文件的名字 |
|
dwDesiredAccess |
Long,如果為 GENERIC_READ 表示允許對設(shè)備進行讀訪問;如果為 GENERIC_WRITE 表示允許對設(shè)備進行寫訪問(可組合使用);如果為零,表示只允許獲取與一個設(shè)備有關(guān)的信息 |
|
dwShareMode |
Long,零表示不共享; FILE_SHARE_READ 和/或 FILE_SHARE_WRITE 表示允許對文件進行共享訪問 |
|
lpSecurityAttributes |
SECURITY_ATTRIBUTES,指向一個SECURITY_ATTRIBUTES結(jié)構(gòu)的指針,定義了文件的安全特性(如果操作系統(tǒng)支持的話) |
|
dwCreationDisposition |
Long,下述常數(shù)之一: |
|
CREATE_NEW |
創(chuàng)建文件;如文件存在則會出錯 |
|
CREATE_ALWAYS |
創(chuàng)建文件,會改寫前一個文件 |
|
OPEN_EXISTING |
文件必須已經(jīng)存在。由設(shè)備提出要求 |
|
OPEN_ALWAYS |
如文件不存在則創(chuàng)建它 |
|
TRUNCATE_EXISTING |
講現(xiàn)有文件縮短為零長度 |
|
dwFlagsAndAttributes |
Long,一個或多個下述常數(shù) |
|
FILE_ATTRIBUTE_ARCHIVE |
標記歸檔屬性 |
|
FILE_ATTRIBUTE_COMPRESSED |
將文件標記為已壓縮,或者標記為文件在目錄中的默認壓縮方式 |
|
FILE_ATTRIBUTE_NORMAL |
默認屬性 |
|
FILE_ATTRIBUTE_HIDDEN |
隱藏文件或目錄 |
|
FILE_ATTRIBUTE_READONLY |
文件為只讀 |
|
FILE_ATTRIBUTE_SYSTEM |
文件為系統(tǒng)文件 |
|
FILE_FLAG_WRITE_THROUGH |
操作系統(tǒng)不得推遲對文件的寫操作 |
|
FILE_FLAG_OVERLAPPED |
允許對文件進行重疊操作 |
|
FILE_FLAG_NO_BUFFERING |
禁止對文件進行緩沖處理。文件只能寫入磁盤卷的扇區(qū)塊 |
|
FILE_FLAG_RANDOM_ACCESS |
針對隨機訪問對文件緩沖進行優(yōu)化 |
|
FILE_FLAG_SEQUENTIAL_SCAN |
針對連續(xù)訪問對文件緩沖進行優(yōu)化 |
|
FILE_FLAG_DELETE_ON_CLOSE |
關(guān)閉了上一次打開的句柄后,將文件刪除。特別適合臨時文件 |
|
也可在Windows NT下組合使用下述常數(shù)標記: |
||
SECURITY_ANONYMOUS, SECURITY_IDENTIFICATION, SECURITY_IMPERSONATION, SECURITY_DELEGATION, SECURITY_CONTEXT_TRACKING, SECURITY_EFFECTIVE_ONLY |
||
hTemplateFile |
Long,如果不為零,則指定一個文件句柄。新文件將從這個文件中復制擴展屬性 |
|
注解 |
||
打開一個通信端口時(如COM1),無論如何都要設(shè)置成 OPEN_EXISTING 這個函數(shù)代替了lOpen 和 lCreate函數(shù),應該是我們的首選 |