MFC之基本的檔案操作

2021-06-27 12:51:44 字數 2366 閱讀 1665

1.我們要做的乙個demo是建立文字檔案並進行讀寫資料的操作

cfile類是mfc中檔案操作的積累,他派生自cobject,直接提供二進位制檔案的輸入輸出服務。本例將介紹如何使用cfile類進行將編輯框中的文字儲存好txt檔案中,並可以進行檔案的讀取操作。

寫入檔案的**如下:

讀取檔案的**如下:

注意:在使用cfile類的時候,要特別小心檔案訪問模式耳朵設定。如本例中的,儲存檔案,檔案是可寫的,如果檔案存在,會將原來的檔案清空。

而在開啟檔案的時候,不能具有mocecreate標識,否則讀取檔案會被清空。

2.在檔案的指定位置存放和讀取資料

先給出例項的demo

儲存按鈕的**如下:

載入**:

注意:  本段**中有一些值得注意的地方

1.如何實現每次讀取的資料恰好是書名呢? 解決方案:採用指標來實現,讓插入資料的時候,不管字元長度如何,均占用40個位元組,讀取的時候每次也讀取40個位元組,那樣就實現了將完整的資料儲存和新增到列表框中。

2.出了這個方法還有沒別的方法來實現呢?可以採用特徵字元的方法,每次插入後都自動插入乙個分隔符,從而達到辨別資料有效字段的效果。

3.檔案的複製 ,刪除,移動

要實現這幾個常用的功能,需要使用win 32api中的相關函式。

函式原型如下:

bool copyfile( 

lpctstr lpexistingfilename, // pointer to name of an existing file 

lpctstr lpnewfilename, // pointer to filename to copy to 

bool bfailifexists // flag for operation if file exists 

); 其中各引數的意義: 

lpctstr lpexistingfilename, // 你要拷貝的源檔名 

lpctstr lpnewfilename, // 你要拷貝的目標檔名 

bool bfailifexists // 如果目標已經存在,不拷貝(true)並返回false,覆蓋目標(false) 

bool deletefile(

lpctstr lpfilename // 檔名

指標 );功能說明

刪除乙個存在的檔案

返回值如果成功返回乙個非0值

失敗返回0 可以用getlasterror函式得到錯誤資訊

如果程式嘗試刪除乙個不存在的檔案。getlasterror返回error_file_not_found。如果檔案是唯讀 的,則getlasterror返回error_access_denied

注:在2000/nt/xp系統下,如果程式試圖去刪除乙個輸入輸出檔案或者是

記憶體對映檔案

函式呼叫就會失敗

bool movefile(

lpctstr lpexistingfilename, // file name

lpctstr lpnewfilename // new file name );

1movefile("c:\\file1.txt","c:\\file3.txt");

移動乙個存在的檔案或者目錄(包括子目錄)

lpexistingfilename 乙個存在的檔案或者資料夾字串指標

lpnewfilename 乙個還沒存在的檔案或者資料夾的字串指標

如果成功呼叫 返回非0

失敗 返回0

這幾個函式由於比較簡單,就不在贅述了。

4.實現遍歷目錄下的每個檔案

由於部落格的長度過於長,所以在以下就只給出核心**了

遍歷檔案的**如下:

mfc下檔案的基本操作

1 檔案的查詢 當對乙個檔案操作時,如果不知道該檔案是否存在,就要首先進行查詢。mfc中有乙個專門用來進行檔案查詢的類cfilefind,使用它可以方便快捷地進行檔案的查詢。下面這段 演示了這個類的最基本使用方法。cstring strfiletitle cfilefind finder bool ...

MFC的檔案操作

mfcfile.cpp 定義控制台應用程式的入口點。include stdafx.h include mfcfile.h ifdef debug define new debug new endif 唯一的應用程式物件 using namespace std lpcstr tchar lpctstr...

MFC檔案操作

講到檔案操作我們會聯想到自己手動操作檔案會涉及到哪些內容.很容易想到的是檢視檔案 資料夾 是否存在,建立,複製,刪除,剪下檔案 資料夾 另外就是設定檔案的屬性.那mfc中一些操作檔案的類也差不多是會涉及到你如上操作.檢視檔案你可能憑直觀感覺想到用find search這樣的函式.猜的大概不錯.mfc...