在下面的具體陳述中可以看到,在確定要查詢的檔名和要進行搜尋的目錄的名稱後,將呼叫函式search_directory進行檔案的查詢。首先依次查詢當前目錄下的每乙個實體(檔案或是子目錄),如果是某一子目錄,則進入該子目錄並遞迴呼叫函式search_dirctory進行查詢,查詢完畢之後, 再返回上一級目錄;如果不是子目錄而是某一檔案,則判斷其是否就是我們要查詢的檔案,如果是則輸出其完整的檔案路徑。這樣,通過search_directory函式的反覆遞迴呼叫,就可以實現對整個目錄,包括子目錄的遍歷搜尋。下面將舉例詳細講述如何在vc++中程式設計實現在整個目錄樹中的檔案查詢。
1.在visual c++ 6.0(vc++ 5.0與之類似)中用預設方式建立了一基於對話方塊的應用程式search。在主視窗對話方塊上放置一命令按鈕,其caption為「search file」,id為id—button—search。單擊此按鈕將完成檔案的查詢工作。
2.利用classwizard為「search file」按鈕的bn_clicked 事件新增處理函式onbuttonsearch,**如下:
#include 〈direct.h〉
#include 〈io.h〉
......
void csearchdlg::onbuttonsearch()
3.在csearchdlg類中增加成員函式search_directory,它將完成具體的檔案查詢工作,**如下:
void csearchdlg::search_directory(char* szfilename) }
else // 如果第乙個實體不是目錄, 則檢查是否是要查詢的檔案 }
// 繼續對當前目錄中的下乙個子目錄或檔案進行與上面同樣的查詢
while(!(—findnext(handle,&filestruct))) }
else }
} —findclose(handle);
// 最後結束整個查詢工作
}
VC 中遍歷整個目錄樹查詢檔案
在應用程式的開發過程中,經常會遇到如何查詢某一檔案以確定此檔案路徑的問題。利用cfilefind類可以比較方便地在當前目錄下進行檔案查詢,但卻不能對其子目錄中的檔案進行搜尋。而實際應用中往往需要對某一整個目錄樹,甚至是整個c盤或d盤驅動器進行檔案搜尋。通過實踐,我們在visual c 6.0中程式設...
遍歷目錄查詢檔案
hresult findfile cstdstring directory,cstdstring filename directory t f 新建資料夾 filename t memset tmpdirexpr,0,max path sizeof tchar strcat tmpdirexpr,d...
遍歷整個目錄樹的檔案和目錄
在開發中我們常常需要遍歷整個目錄樹,這是我們寫乙個這樣的工具類,以後就方便多了,這個類中可以通過使用local 方法產生由本地目錄中的檔案構成的file物件陣列,或者通過使用walk 方法產生給定目錄下的由整個目錄樹中所有檔案構成的list.例子 輔助列印的工具類 public class ppri...