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 獲取系統文件夾
TCHAR buf[_MAX_PATH];
SHGetSpecialFolderPath(NULL,buf,CSIDL_SYSTEM,NULL);
AfxMessageBox(buf);
4 獲取Windows目錄
TCHAR buf[_MAX_PATH];
SHGetSpecialFolderPath(NULL,buf,CSIDL_WINDOWS,NULL);
AfxMessageBox(buf);
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 );
AfxMessageBox(buf);
2 獲取Windows目錄
TCHAR buf[_MAX_PATH];
GetWindowsDirectory( buf, _MAX_PATH );
AfxMessageBox(buf);
以上程序在VC2005中調試通過。