C++ Builder 中 CreateFile的用法

CreateFile

(1)函數原型
HANDLE CreateFile(
LPCTSTR lpfileName,
DWORD deDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes
DWORD dwCreationDesposition,
DWORD dwFlagsAndAtrributes,
HANDLE hTemplateFile
);
(2)函數說明
該函數創建、打開或截斷一個文件,並返回一個能夠被用來存取該文件的句柄。此句柄允許讀書據、寫數據以及移動文件的指針。CreateFile函數既可以做爲一個寬自負函數使用,也可以作爲一個ANSI函數來用。
(3)參數說明
lpFileName:指向文件字符串的指針。
dwDesireAccess:制定文件的存取模式,可以取下列值:
  0:制定可以查詢對象。
  GENERIC_READ:指定可以從文件中度去數據。
  GENERIC_WRITE:指定可以向文件中寫數據。
dwShareMode:指定文件的共享模式,可以取下列值:
  0:不共享。
  FILE_SHARE_DELETE:在Windows NT系統中,只有爲了刪除文件而進行的打開操作纔會成功。
  FILE_SHARE_READ:只有爲了從文件中度去數據而進行的打開操作纔會成功。
  FILE_SHARE_WRITE:只有爲了向文件中寫數據而進行的打開操作纔會成功。
lpSecurityAttributes:指定文件的安全屬性。
dwCreationDisopsition:指定創建文件的方式,可以取以下值:
  CREATE_NEW:創建新文件,如果文件已存在,則函數失敗。
  CREATE_ALWAYS:創建愛內心文件,如果文件已存在,則函數將覆蓋並清除舊文件。
  OPEN_EXISTING:打開文件,如果文件不存在,函數將失敗。
  OPEN_ALWAYS:打開文件,如果文件不存在,則函數將創建一個新文件。
  TRUNCATE_EXISTING:打開外呢間,如果文件存在,函數將文件的大小設爲零,如果文件不存在,函數將失敗返回。
dwFlagsAndAtrributes:指定新建文件的屬性和標誌,它可以取以下值:
  FILE_ATTRIBUTE_ARCHIVE:歸檔屬性。
  FILE_ATTRIBUTE_HIDDEN:隱藏屬性。
  FILE_ATTRIBUTE_NORMAL:正常屬性。
  FILE_ATTRIBUTE_READONLY:只讀屬性。
  FILE_ATTRIBUTE_SYSTEM:系統文件。
  FILE_ATTRIBUTE_TEMPORARY:臨時存儲文件,系統總是將臨時文件的所有數據讀入內存中,以加速對該文件的訪問速度。用戶應該儘快刪除不再使用的臨時文件。
  FILE_FLAG_OVERLAPPED:用戶可以通過一個OVERLAPPED結構變量來保存和設置文件讀寫指針,從而可以完成重疊式的讀和寫。一般用於數量比較大的讀些操作。
hTemplateFile:指向一個具有GENERIC_READ屬性的文件的句柄,該文件爲要創建的文件提供文件屬性和文件擴展屬性。
(4)注意事項
函數成功將返回指定文件的句柄,否則返回NULL。
(5)典型示例:

...
char szFile[64];
HANDLE handle;
unsigned long lWritten,lRead;

handle = CreateFile("c://windows//desktop//example.txt",GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);

if(handle==INVALID_HANDLE_VALUE){
  MessageBox(NULL,"Error Create File!","Error",MB_OK);
  break;
}else
  MessageBox(NULL,"Open file Success!","Open file",MB_OK); 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章