找目錄及設定目錄

来源:互联网 发布:apache centos e325 编辑:程序博客网 时间:2024/05/29 03:53

在MFC的程式開發中,常會找目前的路徑及設定路徑,找了很久,發現一些常用的API

1. GetModuleFileName() : 找當前執行程序的路徑

DWORD WINAPI GetModuleFileName(  __in_opt  HMODULE hModule,  __out     LPTSTR lpFilename,  __in      DWORD nSize);

參數:

hModule [in, optional] : 找當前執行程式的路徑,這個參數設為NULL。
lpFilename [out] : 回傳的路徑。 
nSize [in] : lpFilename的size。

 

相關說明可參考以下路徑

http://msdn.microsoft.com/en-us/library/windows/desktop/ms683197(v=vs.85).aspx

 

Ex:  char mFilename[512] = {'0'}; char mPath[1024] = {'0'}; GetModuleFileName(NULL, mFilename, sizeof(mFilename));  CString Path; Path.Format("%s", mFilename); Path = Path.Left(Path.ReverseFind('\\'));//解析运行程序所在文件夹的目录 CString configFile=_T(Path + "\\ErrorCode.ini"); 
 

2. SetCurrentDirectory() : 變更目前系統設定的路徑。

BOOL WINAPI SetCurrentDirectory(  __in  LPCTSTR lpPathName);

參數 :

lpPathName [in] : 所要設定的路徑。

 

回傳值 :

設定成功,傳回值不為0.

設定不成功,傳回值為0. 使用 GetLastError 取得錯誤訊息.

 

範例 :

#define BUFSIZE MAX_PATH

TCHAR Buffer[BUFSIZE];

 

    if( !SetCurrentDirectory(Buffer) )  

    {     

        printf("SetCurrentDirectory failed (%d)\n", GetLastError());     

        return;  

    }

 

3. GetCurrentDirectory() : 取得當前程序的路徑

DWORD WINAPI GetCurrentDirectory(  __in   DWORD nBufferLength,  __out  LPTSTR lpBuffer);

參數 :

nBufferLength [in] : buffer的大小。

lpBuffer [out] : 路徑的buffer,以TCHAR定義buffer。

 

回傳值 :

設定成功,傳回值不為0.

設定不成功,傳回值為0. 使用 GetLastError 取得錯誤訊息.

 

原创粉丝点击