1、cfilefind類的宣告檔案儲存在afx.h標頭檔案中。
2、該類的實現的功能:執行本地檔案的查詢(查詢某個具體的檔案,查詢某類檔案x*.x*,查詢所有檔案*.*)
3、cfilefind類是cgopherfilefind和cftpfilefind類的基類。
4、cfilefind類的建構函式::cfilefind()和關閉函式::close()我會成對使用。
5、cfilefind類的成員函式我根據其操作特性劃分為3類:查詢操作類、獲得檔案屬性類、判斷檔案屬性類。(下面我先進行函式羅列並沒有完整的描述函式的引數)
查詢操作類
::findfile();
::findnextfile();
獲得檔案屬性類
::getcreationtime();
::getlastaccesstime();
::getlastwritetime();
::getfilename();
::getroot();
::getfilepath();
::getfiletitle();
::getfileurl();
::getlength();
判斷檔案屬性類
::isarchived();
::iscompressed();
::isdirectory();
::isdots();
::ishidden();
::isnormal();
::isreadonly();
::issystem();
::istemporary();
::matchesmask();
6、cfilefind類中成員函式使用應注意的順序
在建立了cfilefind物件後,先執行::findfile()函式,然後執行::findnextfile(),然後選擇執行(獲得檔案屬性類)的函式或者(判斷檔案屬性類)函式。
7、cfilefind類成員函式的詳細分析
virtual bool findfile(lpctstr pstrname = null,dword dwunused = 0);
該函式若返回非0 則表明執行成功,0 則表明執行不成功。
pstrname:需要查詢的檔名,例:「e://程式設計工具//vc++//mfc例子.rar」,「e://程式設計工具//vc++//mfc*.rar」,「e://程式設計工具//vc++//*.*」,也可以是null表示「*.*」。
dwunused:必須為0
virtual bool findnextfile();
該函式返回值非0 還有符合條件的檔案, 0表示是最後乙個檔案。
virtual bool getcreationtime(filetime *pfiletime) const;
virtual bool getcreationtime(ctime& reftime) const;
該函式用來獲得查詢到的某個檔案的建立時間,返回值非0 獲得建立時間成功操作,0表示執行獲得建立時間失敗或者findnextfile()沒有被執行的時候。
filetime *:容納時間的結構指標
此處介紹:filetime和ctime相互轉換的處理方法:
filetime轉ctime的方法:
a、ctime物件在初始化時可以傳遞filetime結構
filetime ft;
ctime time(ft);
b、將filetime轉換為systemtime,然後ctime物件在初始化時可以傳遞systemtime結構
filetime ft;
systemtime st;
bool bsuccess = ::filetimetosystemtime(&ft , &st);
ctime time(st);
ctime轉filetime方法:
ctime time(ctime::getcurrenttime());
systemtime st;
time.getassystemtime(st);
filetime ft;
::systemtimetofiletime(&st,&ft);
virtual bool getlastaccesstime(filetime *pfiletime) const;
virtual bool getlastaccesstime(ctime& reftime) const;
該函式用來獲得某個檔案最後被訪問的時間,非0表示執行成功,0表示執行失敗或者findnextfile()函式沒有執行的時候。
virtual bool getlastwritetime(filetime *pfiletime) const;
virtual bool getlastwritetime(ctime& reftime) const;
該函式用來獲得某個檔案最後被訪問的時間,非0表示執行成功,0表示執行失敗或者findnextfile()函式沒有執行的時候。
virtual cstring getfilepath() const;
該函式用來獲得查詢到的檔案絕對路徑,必須在執行了findnextfile()後該函式才能執行成功。
返回的結果是cstring物件,例「e://程式設計工具//vc++
virtual cstring getfilename() const;
該函式用來獲得查詢到的檔案的全稱,必須在執行了findnextfile()後該函式才能執行成功。
返回的結果是cstring物件,例「mfc.rar」
virtual cstring getfiletitle() const;
該函式用來獲得查詢到的檔案的名稱,必須在執行了findnextfile()後該函式才能執行成功。
返回的結果是cstring物件,例「mfc」
virtual cstring getroot() const;
該函式用來獲得查詢到的檔案的根目錄,必須在執行了findnextfile()後該函式才能執行成功。
返回的結果是cstring物件,例「e://程式設計工具//vc++//」
virtual cstring getfileurl() const;
該函式用來獲得查詢到的檔案的url路徑,必須在執行了findnextfile()後該函式才能執行成功。
返回的結果是cstring物件,例「file://e://程式設計工具//vc++
dword getlength() const;
該函式返回值獲得查詢到的檔案的長度,必須在執行了findnextfile()後該函式才能執行成功。
bool isarchived() const;
該函式用來判斷查詢的檔案屬性是否是檔案檔案,非0表示是,0表示不是。必須在執行了findnextfile()後該函式才能執行成功
bool iscompressed() const;
該函式用來判斷查詢的檔案屬性是否是壓縮檔案,非0表示是,0表示不是。必須在執行了findnextfile()後該函式才能執行成功
bool isdirectory() const;
該函式用來判斷查詢的檔案屬性是否是路徑檔案,非0表示是,0表示不是。必須在執行了findnextfile()後該函式才能執行成功
bool isdots() const;
該函式用來判斷查詢的檔案屬性是否是「.」,「..」,非0表示是,0表示不是。必須在執行了findnextfile()後該函式才能執行成功
bool ishidden() const;
該函式用來判斷查詢的檔案屬性是否隱藏檔案,非0表示是,0表示不是。必須在執行了findnextfile()後該函式才能執行成功
bool isnormal() const;
該函式用來判斷查詢的檔案屬性是否正常檔案,非0表示是,0表示不是。必須在執行了findnextfile()後該函式才能執行成功
bool isreadonly() const;
該函式用來判斷查詢的檔案屬性是否唯讀檔案,非0表示是,0表示不是。必須在執行了findnextfile()後該函式才能執行成功
bool issystem() const;
該函式用來判斷查詢的檔案屬性是否系統檔案,非0表示是,0表示不是。必須在執行了findnextfile()後該函式才能執行成功
bool istemporary() const;
該函式用來判斷查詢的檔案屬性是否臨時檔案,非0表示是,0表示不是。必須在執行了findnextfile()後該函式才能執行成功
bool matchesmask(dword dwmask) const;
該函式用來判斷查詢的檔案的綜合屬性,非0表示是,0表示不是。必須在執行了findnextfile()後該函式才能執行成功
dwmask引數的使用方法:幾種檔案屬性採用或運算(|)
檔案屬性的結構定義:
file_attribute_archive:檔案檔案
file_attribute_compressed:壓縮檔案
file_attribute_directory:路徑檔案
file_attribute_normal:正常檔案
file_attribute_readonly:唯讀檔案
file_attribute_system:系統檔案
file_attribute_temporary:臨時檔案
file_attribute_hidden:隱藏檔案
MFC利用CFileFind 類實現資料夾的複製
實現檔案複製過程時,乙個問題i是我糾結了許久,cfilefind 類的成員函式 getfilepath 與getfilename 其實很好理解的兩個函式,乙個是獲得檔案的路徑,乙個是獲得檔案的名字。但我卻在理解上犯了乙個錯誤,就是檔案路徑究竟包不包含檔案名字,如有檔案c test 1.txt 那麼它...
類模板的使用 類模板使用總結
歸納以上的介紹,可以這樣宣告和使用類模板 先寫出乙個實際的類。將此類中準備改變的型別名 如int要改變為float或char 改用乙個自己指定的虛擬型別名 如上例中的t 在類宣告前面加入一行,格式為 templatetemplate class a 類體用類模板定義物件時用以下形式 類模板名 實際型...
Java Date類的使用總結
date類表示特定的瞬間,精確到毫秒。有2種方法可以建立date物件 這裡不考慮已過時的建構函式 1 public date 分配 date 物件並初始化此物件,以表示分配它的時間 精確到毫秒 1 test 2public void test1 sun oct 23 22 39 14 cst 201...