基於WINAPI的檔案操作

2021-04-13 01:00:22 字數 2801 閱讀 4089

基於winapi的檔案操作

winapi提供了兩種檔案操作函式,一組是為了和16位程式相容,這種函式比較簡單;而另一種是專門為32位程式設計,在使用時就顯得麻煩些,下面我就把這兩組函式一一介紹:

一、和16位程式相容的一組函式函式

說明對應bcb庫函式

_lopen()

開啟檔案

fileopen()

_lclose()

關閉檔案

fileclose()

_lread()

讀檔案fileread()

_lwrite()

寫檔案filewrite()

_llseek()

檔案定位

fileseek()

_lcreat()

建立檔案

filecreate()

⑴_lopen

原型:hfile _lopen(

lpcstr lppathname, // 檔名

int ireadwrite //檔案訪問方式

);功能:開啟檔案,成功返回其控制代碼,與此類似的還有個openfile()函式,可自行查閱幫助檔案。

引數說明:lppathname是要開啟的檔名,ireadwrite是檔案訪問方式,主要有3種方式:

還有如 of_share_compat 等屬性,由於不太常用,為裡就不一一介紹了。

⑵_lclose()

原型:hfile _lclose( hfile hfile);

功能:關閉檔案,成功返回0

引數說明:hfile:要關閉的控制代碼

⑶_lread()

原型:uint _lread( hfile hfile, // 檔案控制代碼

lpvoid lpbuffer, // 儲存資料的緩衝區

uint ubytes // 要讀取的長度

);功能:讀檔案,返回實際讀取的字元數,與此類似的還有個_hread()函式,可自行查閱幫助檔案。

⑷_lwrite()

原型:uint _lwrite( hfile hfile, // 檔案控制代碼

lpcstr lpbuffer, // 儲存資料的緩衝區

uint ubytes // 要寫的長度

);功能:寫檔案,返回實際寫的字元數,與此類似的還有個_hwrite()函式,可自行查閱幫助檔案。

⑸_llseek()

原型:long _llseek( hfile hfile, // 檔案控制代碼

long loffset, // 移動的量

int iorigin // 移動的基準位置

);功能:移動檔案的讀寫位置,成功返回移動後的檔案讀寫位置

引數說明:iorigin的取值是以下三種情況之一:

⑹_lcreat()

原型:hfile _lcreat( lpcstr lppathname, //要建立的檔名

int iattribute // 檔案屬性

);功能:建立檔案,成功返回其控制代碼

引數說明:檔案屬性是以下值的和:

這幾個函式的用法和所列的bcb庫函式差不多,建議使用bcb的庫函式。可參閱前文基於bcb庫函式的檔案操作。

二、32位程式專用檔案操作函式

winapi中還有一組32位程式專用的檔案操作函式,這也是m$推薦使用的函式,但我還是推薦使用bcb的庫函式,除非功能不足,由於此類函式眾多,我就只對重要的作簡要介紹,如果真需要時可查詢幫助系統。

函式功能

createfile()

建立或開啟乙個檔案

copyfile(),copyfileex()

拷貝檔案

createdirectory(),createdirectoryex()

建立目錄

deletefile()

刪除檔案

getdrivetype()

獲取驅動器型別

getfileattributes(),getfileattribute***()

獲取檔案屬性

getfilesize()

獲取檔案位元組大小

getfullpathname()

取得檔案全路徑檔名

getshortpathname()

取得檔案8.3格式全檔名

gettempfilename()

生成乙個臨時檔名

gettemppath()

取臨時檔名的路徑

lockfile(),lockfileex()

鎖檔案movefileex()

移動或更名檔案

readfile(),readfileex()

讀檔案searchpath()

搜尋檔案

setfileattributes()

設定檔案屬性

setfilepoint()

設定檔案讀寫位置

unlockfile(),unlockfileex()

對檔案解除鎖定

writefile(),writefileex()

寫檔案  

win API 操作 ini 檔案

1.getprivateprofileint 從私有初始化檔案獲取整型數值 2.getprivateprofilestring 從私有初始化檔案獲取字串型值 3.writeprivateprofilestring寫字串到私有初始化檔案 4.getprofileint從win.ini 獲取整數值 5....

基於WinAPI的視窗示例

實現的主要功能如下 程式預設圖示為?預設游標為左右箭頭,在指定位置輸出 文字訊息 單擊滑鼠左鍵時,彈出對應點的位置座標 注意座標轉換 單擊鍵盤的上下左右鍵時,彈出對應的對話方塊 鍵盤訊息的處理方式 include windows.h include stdio.h lresult callback ...

如何使用C 操作WinAPI

windows api是對windows作業系統的api函式,在c 中呼叫windows api的實質是託管 對非託管 的呼叫。主要使用的格式就是 using system.runtime.interopservices namespace testwinapi1 dllimport kernel3...