講到檔案操作我們會聯想到自己手動操作檔案會涉及到哪些內容.很容易想到的是檢視檔案(資料夾)是否存在,建立,複製,刪除,剪下檔案(資料夾).另外就是設定檔案的屬性.
那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(其中乙個是cfile的普通成員函式,乙個是static型別的函式.也可以用該函式判斷檔案是否存在cfilestatus&
rstatus) const;static bool getstatus(
lpctstr
lpszfilename,cfilestatus&
rstatus);
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,雙擊將其...