用的三種方法,歸納如下:
方法一 使用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...