CFile類是MFC文件類的基類,它直接提供非緩沖的二進(jìn)制磁盤輸入/輸出設(shè)備,并直接地通過(guò)派生類支持文本文件和內(nèi)存文件。
CFile與CArchive類共同使用,支持MFC對(duì)象的串行化。該類與其派生類的層次關(guān)系讓程序通過(guò)多形CFile接口操作所有文件對(duì)象。例如,一個(gè)內(nèi)存文件相當(dāng)一個(gè)磁盤文件。使用CFile及其派生類進(jìn)行一般目的的磁盤I/O,使用ofstream或其它Microsoft輸入輸出流類將格式化文本送到磁盤文件。
通常,一個(gè)磁盤文件在CFile構(gòu)造時(shí)自動(dòng)打開(kāi)并在析構(gòu)時(shí)關(guān)閉。靜態(tài)成員函數(shù)使你可以在不打開(kāi)文件的情況下檢查文件狀態(tài)。
1、CFile::Close 關(guān)閉文件,使該文件不可用于讀寫
virtual void Close();
2、CFile::GetLength 求文件長(zhǎng)度(以字節(jié)計(jì))
virtual DWORD GetLength()const;
返回值:文件長(zhǎng)度
3、CFile::Open 打開(kāi)文件
virtual BOOL Open(LPCTSTR lpszFileName,UINT nOpenFlags,CFileException* pError=NULL);
參數(shù):lpszFileName指定打開(kāi)文件的路徑;
nOpenFlags 定義文件的共享和存取方式;
pError指向一個(gè)已有的文件異常對(duì)象的指針。
nOpenFlags的常用取值:
CFile::modeCreate 創(chuàng)建一個(gè)新文件,若文件已存在,則該文件被清空;
CFile::modeRead 用于只讀;
CFile::modeReadWrite 用于讀寫;
CFile::modeWrite 用于只寫;
CFile::modeNoInherit 阻止文件被子進(jìn)程繼承;
返回值:若打開(kāi)成功,返回非0;否則返回0
4、CFile::Read 從文件中讀一段數(shù)據(jù)到一緩沖區(qū)中
virtual UINT Read(void* lpBuf,UINT nCount);
參數(shù):lpBuf指向用戶定義的緩沖區(qū);
nCount為要從文件中讀出的最大字節(jié)數(shù)
返回值:傳輸給緩沖區(qū)的字節(jié)數(shù),可小于nCount所指定的值
5、CFile::Rename 重命名文件(靜態(tài)函數(shù)),目錄不可重命名
static void PASCAL Rename(LPCTSTR lpszOldName,LPCTSTR lpszNewName);
參數(shù):lpszOldName 舊路徑名
lpszNewName 新路徑名
6、CFile::Remove 刪除指定文件(靜態(tài)函數(shù)),不可刪除目錄
static void PASCAL Remove(LPCTSTR lpszFileName);
參數(shù):lpszFileName指向刪除文件的路徑名字符串
7、CFile::Seek 定位當(dāng)前文件指針
virtual LONG Seek(LONG lOff,UINT nFrom);
參數(shù):lOff 指針移動(dòng)的字節(jié)數(shù),為正時(shí),向后移動(dòng),為負(fù)時(shí),向前移動(dòng)
nFrom 指針移動(dòng)方式,可以是下列值之一:
CFile::begin 將文件指針從文件頭移動(dòng)lOff個(gè)字節(jié);
CFile::current 將文件指針從當(dāng)前位置移動(dòng)lOff個(gè)字節(jié);
CFile::end 將文件指針從文件尾移動(dòng)lOff個(gè)字節(jié);
8、CFile::SeekToBegin 將文件指針設(shè)置到文件頭,相當(dāng)于Seek(0L,CFile::begin)
void SeekToBegin();
9、CFile::SeekToEnd 將文件指針設(shè)置到文件尾,相當(dāng)于Seek(0L,CFile::end)
DWORD SeekToEnd();
返回值:文件的字節(jié)長(zhǎng)度
10、CFile::Write 將數(shù)據(jù)從一緩沖區(qū)寫入文件中
virtual void Write(const void* lpBuf,UINT nCount);
參數(shù):lpBuf指向用戶定義的緩沖區(qū);
nCount為要從緩沖區(qū)傳輸?shù)淖止?jié)數(shù)
新聞熱點(diǎn)
疑難解答
圖片精選