WinCE 檔案操作總結

2021-06-07 22:39:51 字數 3154 閱讀 3944

用的三種方法,歸納如下:

方法一 使用mfc的cfile類

開啟用open,關閉用close(),檔案指標移動用seek,讀檔案用read(),寫檔案用write,獲取檔案屬性可以使用getfilestatus方法,這個可以檢視msdn,下面給幾行簡單**:

cfile file;

bool isopenok = file.open(l"\\flash disk\\flyfox\\test.txt", cfile::typebinary|cfile::moderead);//返回真表示讀成功

if (isopenok)

file.close ();

方法二 基於c的使用file結構體

1、開啟檔案使用_wfopen,原型如下:

file *_wfopen( const wchar_t *filename, const wchar_t *mode );

第二個引數是開啟模式,這裡有很多,比如r,w,r+等等,意義如下:

1、"r" 以唯讀方式開啟檔案,檔案不存在將開啟失敗 

2、"w" 以只寫方式開啟檔案,如無檔案生成新檔案,如果檔案已存在,將被破壞

3、"a" 以追加的方式開啟檔案,如果檔案不存在,將自動建立乙個新檔案,已經存在的檔案eof標誌將不動。

4、"r+" 以讀/寫方式開啟檔案,檔案不存在將開啟失敗 

5、"w+" 以讀/寫方式開啟檔案,如無檔案生成新檔案,如果檔案已存在,將被破壞

6、a+ 以追加方式開啟檔案,如果檔案不存在,將自動建立乙個新檔案,已經存在的檔案的eof標誌將會去掉,並在寫好新的資料後自動加到檔案末尾。

7、t 以文字模式開啟

8、b 以二進位制模式開啟。

這些標誌可以同時使用,比如rb+(就是br+)以二進位制方式,唯讀開啟檔案。

2、讀檔案使用fread(),原型如下:

size_t fread( void *buffer, size_t size, size_t count, file *stream );

引數:buffer是儲存讀取的資料,

size是每塊的位元組數;

n是讀取的塊數,如果成功,返回實際讀取的塊數(不是位元組數),本函式一般用於二進位制模式開啟的檔案中。

例:char buffer[1024];

file *file = fopen(l"\\flash disk\\flyfox\\test.txt", "r");

fread(buffer, 2, 150 , file);//按每塊2個位元組,讀取1590塊,共讀取2*150=300個位元組,實際讀取塊數可由函式返回。

3、寫檔案使用fwrite()。與fread對應,原型如下:

size_t fwrite( const void *buffer, size_t size, size_t count, file *stream );

引數意義同fread。

4、fseek()

此函式一般用於二進位制模式開啟的檔案中,功能是定位到流中指定的位置,原型如下:

int fseek( file *stream, long offset, int origin );

如果成功返回0。

引數:offset是移動的字元數,

origin是移動的基準,表示從哪開始移動檔案指標,取值如下:

符號常量

值基準位置

seek_set

0檔案開頭

seek_cur

1當前讀寫的位置

seek_end

2檔案尾部

例:fseek(file, 1000l, seek_cur); //把讀寫位置從當前位置向後移動1234位元組

fseek(file, 0l, 2);  //把讀寫位置移動到檔案尾

5、關閉則是使用fclose,原型如下:

int fclose( file *stream );

對這種方法,也給出幾行簡單**:

file *fp = _wfopen(pfilename, l"ab");

if (!fseek (fp, 100, seek_set))

fclose (fp);

方法三 採用wince的api

1.  檔案的開啟createfile

以上引數比較多,這個在evc下有幫助,可以查到。可以舉個例子:

handle hfile = createfile (pfilename, 

generic_write,

file_share_write,

null,

open_always,

file_attribute_normal,

null);

if (hfile == invalid_handle_value)

2.  檔案的關閉

檔案使用完之後就應該及時關閉,以釋放對它的資源

bool closehandle(handle hobject);

比如closehandle(hfile);

3.  檔案的讀寫

檔案的讀readfile

檔案的寫writefile

比如:bool b = writefile (hfile, pbuffer, dtowrite, pwrite, null);

//dtowrite為準備寫入的位元組數,pwrite為dword*,獲取實際寫入的位元組數

if ( !b )

4.  檔案指標的移動setfilepointer

例如:setfilepointer(hfile, 0, null, file_begin);

5.  獲取和設定檔案資訊

引數表示檔名或者目錄名

dword getfileatrribute(lpststr lpfilename);

dword setfileattributes(lpct

str lpfilename,dword dwfileattributes);

6.  獲取和設定檔案時間

bool getfiletime

bool setfiletime

7.  獲取檔案大小

dword getfilesize(handle hfile, null);

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...

Wince下檔案操作API

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