轉自:http://blog.csdn.net/wishfly/article/details/2906187
在開發軟件里,常常碰到要讀取當前目錄下的配置參數文件,或者打開當前目錄下別的程序來運行,那么就需要獲取當前進程的目錄位置,這就需要使用函數GetCurrentDirectory獲取當前進程所有在的目錄。同時也可以使用SetCurrentDirectory函數來改變進程的當前目錄。 函數GetCurrentDirectory和SetCurrentDirectory聲明如下: WINBASEAPI DWORD WINAPI GetCurrentDirectoryA( ??? __in DWORD nBufferLength, ??? __out_ecount_part_opt(nBufferLength, return + 1) LPSTR lpBuffer ??? ); WINBASEAPI DWORD WINAPI GetCurrentDirectoryW( ??? __in DWORD nBufferLength, ??? __out_ecount_part_opt(nBufferLength, return + 1) LPWSTR lpBuffer ??? ); #ifdef UNICODE #define GetCurrentDirectory?GetCurrentDirectoryW #else #define GetCurrentDirectory?GetCurrentDirectoryA #endif // !UNICODE WINBASEAPI BOOL WINAPI SetCurrentDirectoryA( ??? __in LPCSTR lpPathName ??? ); WINBASEAPI BOOL WINAPI SetCurrentDirectoryW( ??? __in LPCWSTR lpPathName ??? ); #ifdef UNICODE #define SetCurrentDirectory?SetCurrentDirectoryW #else #define SetCurrentDirectory?SetCurrentDirectoryA #endif // !UNICODE nBufferLength是緩沖區的大小。 lpBuffer是接收目錄的緩沖區指針。 lpPathName是設置的目錄。 調用函數的例子如下: #001??//獲取或者改變當前目錄路徑。 #002??//蔡軍生?2007/10/17 QQ:9073204?深圳 #003??void GetCurDir(void) #004??{ #005???????? // #006???????? TCHAR szBuf[MAX_PATH]; #007???????? ZeroMemory(szBuf,MAX_PATH); #008???????? if (GetCurrentDirectory(MAX_PATH,szBuf) > 0) #009???????? { #010?????????????? //獲取進程目錄成功。 #011?????????????? OutputDebugString(szBuf); #012???????? } #013???????? else #014???????? { #015?????????????? //改變當前目錄位置。 #016?????????????? SetCurrentDirectory(_T("C://")); #017???????? } #018? #019???????? OutputDebugString(_T("/r/n"));?????????? #020??}
轉載于:https://www.cnblogs.com/pamxy/archive/2013/03/04/2991520.html
總結
以上是生活随笔為你收集整理的GetCurrentDirectory和SetCurrentDirectory函数的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。