Wince下檔案操作API

2021-04-21 01:09:46 字數 2705 閱讀 3326

序言

wince中的檔案操作使用傳統的基於控制代碼的方法;檔案通過返回控制代碼的函式開啟;讀取和寫入函式被傳遞控制代碼以便指出要操作的函式;資料在檔案中讀取和寫入的偏移量由系統維護的檔案指標來指出;最後當讀取和寫入完成時,應用程式通過關閉檔案控制代碼來表示操作的結束。

正文1.1 建立和開啟檔案

handle createfile( lpctstr lpfilename,

dword  dwdesiredaccess,

dword   dwsharemode,

lpsecurity_attribute  lpsecurityattribute,

dword dwcreationdisposition,

dword dwflagsandattribute,

handle htemplatefile

lpfilename---要開啟或建立的檔名。檔名稱應包括完全指定的路徑,對於沒有路徑資訊的檔名,系統預設為在對 象儲存庫的根目錄下。

dwdesiredaccess---指出所需的訪問許可權。允許使用的標誌是用來請求  對檔案進行讀取訪問的generic_read和對檔案進行寫入訪問的generic_write。要獲取檔案的讀取/寫入訪問必須同時傳遞兩個引數。 

dwsharemode---指定了可以給於其他程序的訪問許可權。可以為file_shared_read/file_shared_write。

lpsecurityattribute---wince忽略該引數,設為null。

dwcreationdisposition---確定如何開啟或建立檔案。可取如下值:

create_new      建立乙個新檔案,如果該檔案存在,則該函式將失敗。

create_always       建立乙個新檔案或截斷乙個現有檔案。

open_existing       僅當檔案存在時才開啟檔案。

open_always       開啟乙個檔案,如果該檔案不存在就建立乙個檔案。這與create_always不同,因為如果檔案存在,它不會將檔案截斷到0位元組。

truncate_existing       開啟檔案並將其截斷到0位元組。如果檔案不存在,則該函式失敗。 

dwflagsandattribute---定義檔案的屬性標誌。wince允許的標誌如下:

file_attribute_normal    預設屬性,將被任意其他屬性標誌所覆蓋。

file_attribute_readonly     唯讀屬性

file_attribute_archive     存檔屬性     

file_attribute_system     系統屬性

file_attribute_hidden    隱藏屬性

file_flag_write_through    對檔案的寫操作不會被儲存到記憶體中   

file_flag_random_access     向系統表明該檔案將被隨機訪問而不是順序訪問。 

htemplatefile---忽略,設為0。   

1.2  讀取和寫入

bool readfile( handle hfile,

lpvoid lpbuffer,

dword nnumberofbytestoread,

lpdword lpnumberofbytesread,

hfile---要讀取的已開啟檔案的控制代碼。

lpbuffer---指向接收資料的緩衝區的指標。

nnumberofbytestoread---要從檔案中讀取的位元組數。

lpnumberofbytesread---指向接收實際讀取的位元組數的dword指標。

注:資料的讀取從檔案指標所指定的檔案偏移量開始,在讀取完成後,將通過讀取的位元組數對檔案指標進行調整。

bool writefile( handle hfile,

lpvoid lpbuffer,

dword nnumberofbytestowrite,

lpdword lpnumberofbyteswritten,

該函式引數基本與readfile相同,只是lpbuffer現在指向的是要寫入到檔案中的資料。

1.3 移動檔案指標

dword setfilepointer( handle hfile,

long idistancetomove,

plong lpdistancetomovehigh,

dword dwmovemethod

hfile---檔案控制代碼。

idistancetomove---移動檔案指標的有符號偏移量距離,乙個有符號32位值。

lpdistancetomovehigh---若檔案指標移動距離超過4gb,該引數應指向乙個包含移動距離的高32位偏移量的長整數,否則設為null。

dwmovemethod---指出如何解釋偏移量。

file_begin    偏移量將從檔案的開始算起;

file_current    偏移量將從檔案的當前位置算起;

file_end    偏移量從檔案的末尾算起;

注:setfilepointer函式在移動完成之後將返回在新位置的檔案指標。若想查詢當前檔案位置而不改變檔案指標,只需使用零偏移量和相對於檔案中的當前位置來呼叫setfilepointer函式,如下:ncurrfileptr = setfilepointer(hfile, 0, null, file_current);

1.4 關閉檔案

closehandle(handle hobject);

WinCE下檔案的路徑

在wince下,不能用相對路徑,必須用絕對路徑 full path 來定位檔案。如,在program files testprogram目錄下的abc.txt檔案,只能用 program files testprogram abc.txt來定位,而不能用abc.txt定位。如 private voi...

WinCE檔案基本操作

wince 下對檔案的基本操作 wince 對檔案操作有兩種方式 一種是用wince 自帶的api 函式,另一種方法是用mfc 類庫種的cfile 類。我們先用第一種的操作 1 檔案的開啟 handle createfile lpctstr lpfilename,dword dwdesireacce...

WinCE檔案基本操作

wince 下對檔案的基本操作 wince 對檔案操作有兩種方式 一種是用 wince 自帶的api 函式,另一種方法是用 mfc類庫種的 cfile 類。我們先用第一種的操作 1 檔案的開啟 handle createfile lpctstr lpfilename,dword dwdesireac...