麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

CFile文件操作示例

2019-11-14 08:48:04
字體:
來源:轉載
供稿:網友

簡單介紹

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

該類有三種常見的構造函數,其中一種聲明形式如下:

CFile(LPCTSTR lpszFileName,UINT nOpenFlags);

參數:

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

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

CFile::modeCreate         文件已經存在,將它的長度截斷為0;   CFile::modeRead           只讀 CFile::modeReadWrite  可讀寫CFile::modeWrite            只寫

操作示例

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

我們在View類中增加這兩個的菜單響應函數,其函數分別命名為OnWriteFile和OnReadFile;

OnWriteFile消息響應函數:

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

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

工程目錄下出現test.txt文件,其內容是“hello word!”;

OnReadFile運行結果:

彈出Messagebox對話框,其內容是“hello word!”;

成員函數

數據成員

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产精品福利一区 | 国产高潮好爽受不了了夜色 | 日日爱影院 | 女人裸体让男人桶全过程 | 97青青草视频 | 国产资源在线播放 | 中文字幕免费在线看 | 一区二区三区日韩 | 国产免费一区 | 亚洲成人激情av | 99热久草| 亚洲精品免费播放 | 日韩美香港a一级毛片免费 欧美一级淫片007 | 久久精品视频一区二区三区 | 亚洲成人福利在线观看 | 精品亚洲一区二区 | av在线免费电影 | 亚洲自拍第一 | 蜜桃久久一区二区三区 | 国产午夜精品在线 | av电影在线网 | 色妹子久久| 久久久久久久久淑女av国产精品 | 嫩草91在线 | 国产一区二区欧美 | 看一级毛片| 亚洲小视频在线 | 黄网站免费入口 | 国产色视频在线观看免费 | 狠狠操天天射 | 久久草在线视频国产 | 国产一区二区三区四区五区在线 | 国产91久久精品一区二区 | 日本不卡一区二区在线观看 | 欧美成人精品不卡视频在线观看 | 极品xxxx欧美一区二区 | 成人毛片视频免费看 | 激情久久一区二区 | 精品国产96亚洲一区二区三区 | 福利四区 | av免费在线观看国产 |