目錄瀏覽對話框和遍歷文件夾

BROWSEINFO結構體,主要是對目錄對話框的設計,包括以下幾個成員:
typedef struct _browseinfo { 
 HWND hwndOwner;         //設定對話框的父窗口
 LPCITEMIDLIST pidlRoot;  //指定對話框中要顯示的root目錄,如果爲空則顯示桌面上的root目錄
 LPSTR pszDisplayName; //存儲用戶選擇路徑的buffer,大小可以設置爲MAX_PATH
 LPCSTR lpszTitle;    //對話框中的標題(提示信息)
 UINT ulFlags;    //選擇目錄的模式,比如可以只能選擇計算機,只能選擇目錄或能選擇具體的文件等
 BFFCALLBACK lpfn;  //當被創建時調用的函數指針,經常設置爲null
 LPARAM lParam; //函數的參數
 int iImage; //存儲與被選擇的文件夾相關的image的變量 
 } BROWSEINFO, *PBROWSEINFO, *LPBROWSEINFO;
LPITEMIDLIST SHBrowseForFolder(LPBROWSEINFO lpbi)顯示選擇目錄對話框並返回用戶選擇的路徑,該路徑被放在結構體ITEMIDLIST
 BOOL  SHGetPathFromIDList( LPCITEMIDLIST pidl, LPSTR pszPath )將pidl中存儲的路徑信息存儲到pszPath中,這樣就得到了用戶選擇的路徑

//得到目錄中的文件(遍歷文件夾,如果裏面還含有文件夾,這種方法還要添加其他判斷語句)
 CFileFind finder; 
 BOOL bWorking = finder.FindFile("*.*"); 
 while (bWorking) { 
 bWorking = finder.FindNextFile(); 
 cout << (LPCTSTR) finder.GetFileName() << endl; } 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章