VC擷取指定檔案夾路徑
flyfish 2010-3-5
一 使用Shell函數
1 擷取應用程式的安裝路徑
TCHAR buf[_MAX_PATH];
SHGetSpecialFolderPath(NULL,buf,CSIDL_PROGRAM_FILES,NULL);
AfxMessageBox(buf);
2 擷取應用程式資料路徑的檔案夾
TCHAR bufApplicateData[_MAX_PATH];
SHGetSpecialFolderPath(NULL,bufApplicateData,CSIDL_APPDATA,NULL);
AfxMessageBox(bufApplicateData);
3 擷取系統檔案夾
SHGetSpecialFolderPath(NULL,buf,CSIDL_SYSTEM,NULL);
4 擷取Windows目錄
SHGetSpecialFolderPath(NULL,buf,CSIDL_WINDOWS,NULL);
5 擷取其他指定檔案夾
主要使用SHGetSpecialFolderPath函數
函數原型:BOOL SHGetSpecialFolderPath(HWND hwndOwner,LPTSTR lpszPath,int nFolder, BOOL fCreate);
參數nFolder指明擷取什麼樣的檔案夾。如下參考
MSDN可以搜尋關鍵字:CSIDL
MSDN URL:ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.WIN32COM.v10.en/shellcc/platform/shell/reference/enums/csidl.htm
二 使用其他API函數
1 擷取系統檔案夾
TCHAR buf[_MAX_PATH];
GetSystemDirectory( buf, _MAX_PATH );
2 擷取Windows目錄
GetWindowsDirectory( buf, _MAX_PATH );
以上程式在VC2005中調試通過。