找目录及设定目录

在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 取得错误讯息.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章