DWORD GetCurrentDirectory(
DWORD nBufferLength, // size of directory buffer
LPTSTR lpBuffer // directory buffer
);
函數功能
獲取當前進程的當前目錄。
注意當前目錄這東西有點怪異,本來確實是可執行文件的所在目錄,但是當用文件對話框成功打開一個文件後,該目錄就被修改爲被打開的文件所在目錄。比如在程序中使用"123.txt"這樣的文件名,希望將它存儲在exe文件所在目錄中,但是當用戶用文件對話框打開一個文件"F:\456.txt"後,這個123.txt會被存儲到F盤下。(VC2005下的情況,其他VC版本待驗證)
參數說明
參數 類型及說明
nBufferLength 緩衝區的長度
lpBuffer 指定一個預定義字串,用於裝載當前目錄
返回值
調用成功 返回裝載到lpBuffer的字節數。
調用函數的例子如下:
#001 //獲取或者改變當前目錄路徑。#002 #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 }#021