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