獲取系統資料夾或檔案
阿新 • • 發佈:2019-01-04
獲取檔案目錄
OPENFILENAME ofn; // 公共對話方塊結構。
TCHAR szFile[MAX_PATH]; // 儲存獲取檔名稱的緩衝區。
// 初始化選擇檔案對話方塊。
ZeroMemory(&ofn, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = NULL;
ofn.lpstrFile = szFile;
ofn.lpstrFile[0] = ‘\0’;
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = L"All(.
ofn.nFilterIndex = 1;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
//ofn.lpTemplateName = MAKEINTRESOURCE(ID_TEMP_DIALOG);
// 顯示開啟選擇檔案對話方塊。
if ( GetOpenFileName(&ofn) )
{
return szFile;
}
獲取資料夾目錄(排除系統盤) TCHAR szBuffer[MAX_PATH] = { 0 }; BROWSEINFO bi = { 0 }; bi.hwndOwner = NULL;//擁有著視窗控制代碼,為NULL表示對話方塊是非模態的,實際應用中一般都要有這個控制代碼 bi.pszDisplayName = szBuffer;//接收資料夾的緩衝區 bi.lpszTitle = TEXT("選擇目錄");//標題 bi.ulFlags = BIF_RETURNONLYFSDIRS; LPITEMIDLIST idl = SHBrowseForFolder(&bi); if (SHGetPathFromIDList(idl, szBuffer)) { CString strPath = szBuffer; int nPos = strPath.ReverseFind('\\'); if (nPos == strPath.GetLength()-1) { MessageBox(NULL,_T("此目錄不允許新增信任!"),_T(""),0); } else return szBuffer; }