MFC檔案操作

2022-04-04 08:27:37 字數 2480 閱讀 8980

講到檔案操作我們會聯想到自己手動操作檔案會涉及到哪些內容.很容易想到的是檢視檔案(資料夾)是否存在,建立,複製,刪除,剪下檔案(資料夾).另外就是設定檔案的屬性.

那mfc中一些操作檔案的類也差不多是會涉及到你如上操作.

檢視檔案你可能憑直觀感覺想到用find , search這樣的函式.猜的大概不錯.mfc中有個類cfilefind,它有個函式findfile可以來判斷檔案是否存在.

cfilefind用法

cfilefind filefind;

cstring strfilename;

strfilename = _t("d:\\test.txt");

if(filefind.findfile(strfilename) );

除了檢視檔案是否存在cfilefind類中還有許多其他函式可以得到檔案的詳細資訊.比如

isreadonly檢視是否唯讀

ishidden是否隱藏

getlastaccesstime 檢視上次檔案訪問時間

getlength檢視檔案大小(不過要注意的是呼叫了findfile函式後還得再來個filefind.findnextfile(),然後再呼叫filefind.getlength()才不會出錯)

另外還有個結構體叫cfilestatus,也可以實現類似的一些功能.

cfilestatus用法

structcfilestatus

cfilestatu在cfile的函式getstatus中會用到,該函式有兩個版本

bool getstatus(

cfilestatus&rstatus) const;

static bool getstatus(

lpctstrlpszfilename,

cfilestatus&rstatus);

其中乙個是cfile的普通成員函式,乙個是static型別的函式.也可以用該函式判斷檔案是否存在

cfile file;

cfilestatus filestatus;

cstring strfilename;

strfilename = _t("d:\\test.txt");

if(file.getstatus(filestatus))   //或者用cfile:getstatus(strfilename, filestatus)

//存在

else

//不存在

檢視目錄是否存在很簡單

cstring strdirpath = _t("d:\\temp");

bool bexistdir = ::pathfileexists(strdirpath);

建立目錄

cstring strdirname = _t("d:\\temp\\dir");

::createdirectory(strdirname,null); //要保證temp是存在的.

cfile file;

cfileexception exp;

cstring strfilename = _t("d:\\temp\\arwen.txt"

);//建立檔案,如果已經存在檔案則會覆蓋之前的內容

bool bcreatefile = file.open(strfilename,cfile::modecreate,&exp);

如果建立失敗你想知道詳細資訊的話可以通過exp.m_cause去獲取, 可能的錯誤資訊是

enum

file.close();

假如你讀或寫檔案時不讓其他人操作該檔案(有點像資料庫中的上鎖),咋整呢?

file.open( strfilename, cfile::modewrite | cfile:sharedenyread)

cfile:sharedenyread 就表示你操作時別人也不能讀檔案.

如果是可讓別人讀但不能寫就是cfile::sharedenywrite

另外我們經常碰到一些檔案時唯讀的,或者是隱藏的.怎麼在**中設定呢

setfileattributes(strfilename, file_attribute_readonly);  //設定檔案為唯讀

file_attribute_hidden就是表示隱藏

假如你要取消這些屬性就這樣

setfileattributes(strfilename, file_attribute_normal);

設定屬性還有另外乙個方法

cfilestatus status;

cfile::getstatus(strfilename, status);

status.m_attribute |= cfile::readonly;

cfile::setstatus(strfilename, status);

MFC檔案操作

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

MFC檔案操作

檔案操作是指對檔案的讀寫操作,而在讀寫檔案前,通常需要先開啟檔案,完成讀寫操作後,需要關閉檔案。1 檔案的開啟 方式按照實現的不同,分為三種 ifstream 支援從本流類 物件 所對應的磁碟檔案中讀入資料。使用如下 ifstream 物件名 物件名 open 檔名 ofstream 支援從本流類 ...

MFC 列表檔案操作

一 在乙個按鍵中觸發另乙個按鍵 void cmainpage 1 1 onbnclickedbutton2 二 列表拖動檔案,顯示檔案內容 1 先設定住對話方塊的屬性 accept file 修改為 true。2 右鍵類嚮導 class wizard 選擇訊息,找到wm dropfiles,雙擊將其...