CreateFile

此頁沒有內(nèi)容條目
內(nèi)容

CreateFile

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ù),應該是我們的首選

Top