国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

CFile文件操作示例

2019-11-14 08:52:19
字體:
供稿:網(wǎng)友

簡(jiǎn)單介紹

CFile是MFC文件類的基類,它直接提供非緩沖的二進(jìn)制磁盤輸入/輸出設(shè)備,并直接地通過派生類支持文本文件和內(nèi)存文件。CFile與CArchive類共同使用,支持MFC對(duì)象的串行化。

該類有三種常見的構(gòu)造函數(shù),其中一種聲明形式如下:

CFile(LPCTSTR lpszFileName,UINT nOpenFlags);

參數(shù):

   lpszFileName是指定的文件名稱,可以是相對(duì)路徑和決定路徑;

   nOpenFlags是指定文件的操作標(biāo)志,常見有以下幾種,:

CFile::modeCreate         文件已經(jīng)存在,將它的長(zhǎng)度截?cái)酁?;   CFile::modeRead           只讀 CFile::modeReadWrite  可讀寫CFile::modeWrite            只寫

操作示例

我們創(chuàng)建一個(gè)單文檔MFC工程,命名為File;并在主菜單中增加File的菜單項(xiàng),WriteFile和ReadFile是其子菜單,其ID分別是IDM_WRITEFILE和IDM_READFILE,這兩個(gè)子菜單時(shí)非Popup類型,如下圖所示:

我們?cè)赩iew類中增加這兩個(gè)的菜單響應(yīng)函數(shù),其函數(shù)分別命名為OnWriteFile和OnReadFile;

OnWriteFile消息響應(yīng)函數(shù):

void CFileView::OnWriteFile(){    // TODO: 在此添加命令處理程序代碼    CFile File("test.txt",CFile::modeCreate|CFile::modeReadWrite);        char szBufData[100] = {"hello Word!"};    //寫入文件內(nèi)容,不包含/0    File.Write(szBufData, strlen(szBufData));    //立即寫入,不緩沖    File.Flush();    //文件操作結(jié)束關(guān)閉    File.Close();}OnReadFile消息響應(yīng)函數(shù):

void CFileView::OnReadFile(){    // TODO: 在此添加命令處理程序代碼    CFile File;    CFileException e;    TCHAR* pszFileName = _T("test.txt");    //構(gòu)造文件,同時(shí)增加異常處理    if(!File.Open(pszFileName, CFile::modeRead,&e))    {        CString strErr;        strErr.Format(_T("File could not be opened %d/n"), e.m_cause);        MessageBox(strErr);    }    //創(chuàng)建指定大小的Buffer    DWORD  dwFileLenth = (DWORD)File.GetLength();    //初始化buffer, 增加一個(gè)/0空間    char *pBuf = new char[dwFileLenth + 1];    memset(pBuf, 0, dwFileLenth + 1);    if (pBuf != NULL)    {        //讀取文件內(nèi)容        File.Read(pBuf,dwFileLenth);        File.Close();        //顯示文件內(nèi)容        MessageBox(pBuf);        //刪除bufer,避免內(nèi)存泄漏        delete[] pBuf;        pBuf = NULL;    }}OnWriteFile運(yùn)行結(jié)果:

工程目錄下出現(xiàn)test.txt文件,其內(nèi)容是“hello word!”;

OnReadFile運(yùn)行結(jié)果:

彈出Messagebox對(duì)話框,其內(nèi)容是“hello word!”;

成員函數(shù)

數(shù)據(jù)成員

m_hFile常包含操作系統(tǒng)文件句柄
構(gòu)造函數(shù)
CFile從一個(gè)路徑或文件句柄構(gòu)造一個(gè)CFile對(duì)象
Abort不管任何警告和錯(cuò)誤,關(guān)閉一個(gè)文件
Duplicate構(gòu)造一個(gè)基于該文件的副本
Open帶錯(cuò)誤檢驗(yàn)選項(xiàng),安全打開一個(gè)文件
Close關(guān)閉文件,刪除對(duì)象
輸入/輸出
Read從文件的當(dāng)前位置讀數(shù)據(jù)
ReadHuge可從文件的當(dāng)前位置讀取大于64K數(shù)據(jù),在32位編程中廢棄了,見Read
Write將文件數(shù)據(jù)寫入當(dāng)前文件位置
WriteHuge可將文件的大于64K數(shù)據(jù)寫到當(dāng)前文件位置,在32位編程中廢棄了,見Write
Flush溢去未被寫入的任何數(shù)據(jù)
定位
Seek定位于當(dāng)前文件指針
SeekToBegin定位當(dāng)前文件指針到文件開頭
SeekToEnd定位當(dāng)前文件指針到文件尾
GetLength獲取文件長(zhǎng)度
SetLength改變文件長(zhǎng)度
封鎖
LockRange在文件中封鎖一定范圍內(nèi)的字節(jié)
UnlockRange解鎖一定范圍內(nèi)的字節(jié)
狀態(tài)
GetPosition獲取當(dāng)前文件指針
GetStatus獲取打開文件的狀態(tài)
GetFileName獲取被選文件的文件名
GetFileTitle獲取被選文件的標(biāo)題
GetFilePath獲取被選文件的完整路徑
SetFilePath設(shè)置被選文件的完整路徑
靜態(tài)
Rename改名指定文件(靜態(tài)函數(shù))
Remove刪除指定文件(靜態(tài)函數(shù))
GetStatus獲取指定文件的狀態(tài)(靜態(tài),虛函數(shù))
SetStatus設(shè)置指定文件的狀態(tài)(靜態(tài),虛函數(shù)) 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 嘉定区| 克东县| 讷河市| 铁力市| 江口县| 黄石市| 全南县| 高台县| 开鲁县| 南雄市| 台东县| 拉萨市| 丰原市| 宿松县| 称多县| 武宁县| 古交市| 赫章县| 临猗县| 新津县| 诸暨市| 贞丰县| 奈曼旗| 长泰县| 苏尼特左旗| 闽清县| 伊川县| 应城市| 罗定市| 区。| 巧家县| 神木县| 剑川县| 田林县| 泰和县| 赫章县| 盐池县| 华宁县| 定州市| 朝阳市| 栾城县|