MFC總結(一):MFC中文件操作、查找與選擇總結(1)

       本文主要涉及以下幾個方面,均爲在MFC編程中較爲常用的:CFile操作、CArchive操作、如何選擇文件和文件夾、如何查找文件、獲取當前目錄、_access函數等。

     (一)使用CFile類操作文件

       CFile類在MFC的文件操作中應該是最常用的了。主要的成員函數有Open、Close、Write、Read、Seek、SeekToEnd、GetLength、GetPosition,具體用法見MSDN。

       (1)文件打開操作:

        文件打開有兩種方式,一種是先定義類對象,在用Open函數打開;一種是在定義類對象時傳入文件名和打開方式。分別如下

        CFile file;

        if(!file.Open(lpszFileNamenOpenFlags ))

              return;

       或

       CFile file(lpszFileNamenOpenFlags);

      (2)文件打開方式:

       文件打開方式,即上述nOpenFlags的值主要由一些宏定義的值組合而成,具體見MSDN,常用的有如下幾種:

       A. CFile::modeCreate CFile::modeNoTruncate |CFile::modeWrite ,以寫文件的方式打開,如果文件不存在,則新建文件,否則打開已有文件進行寫入操作,此時不會清空原有文件

       B. 將上述CFile::modeWrite更換爲CFile::modeRead 或者CFile::modeReadWrite 可實現讀操作或者同時讀寫。

    (3)判斷文件結束

     判斷文件是否結束,沒有結束則繼續讀取,否則關閉退出。這點在編程時常用。對於CFile常用的判斷文件結束的方法是:

    while(file.GetPosition() < file.GetLength())

    {   //文件未結束

           //Add code ....

    }

    (4)值得注意的幾點:

     A. 當文件名中包含路徑時,要注意使用\\,如C:\\MyFile.DAT,在Unicode下時,需要使用_T("C:\\MyFile.DAT")

     B. 採用(2)中A方式寫文件時,注意使用file.SeekToEnd()將文件指針移至文件尾,再寫入,否則會覆蓋已有的數據,這點經常被很多初學者忽視;

     C. 在打開文件後就要緊接着寫下Close,養成這樣的習慣,避免忘記關閉文件。特別是在對某個讀出的數據進行判斷,如何符合條件則函數返回,此時一定要切記返回前關閉文件;

     D. CFile讀寫文件都是按照字節來實現的。

        未完,待續。。。。

            

發佈了37 篇原創文章 · 獲贊 199 · 訪問量 43萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章