天天看點

VC 擷取指定檔案夾路徑的方法小結

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中調試通過。

繼續閱讀