遍歷整個目錄樹查詢檔案

2021-03-31 14:45:53 字數 969 閱讀 9147

在下面的具體陳述中可以看到,在確定要查詢的檔名和要進行搜尋的目錄的名稱後,將呼叫函式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...