擷取目前目錄
取得目前目錄是程式設計中的常見任務。例如,假設您要在執行可執行檔的相同目錄中建立一個檔案。為此,您需要取得目前目錄的路徑。
但是,當使用 GetCurrentDirectory() 函數時,如下所示:
LPTSTR NPath = NULL; DWORD a = GetCurrentDirectory(MAX_PATH, NPath); HANDLE hNewFile = CreateFile(NPath, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
您可能會遇到異常。您應該使用 GetModuleFileName() 來檢索可執行路徑,而不是 GetCurrentDirectory()。
TCHAR buffer[MAX_PATH] = { 0 }; GetModuleFileName(NULL, buffer, MAX_PATH);
要取得不含檔名的目錄路徑,您可以使用下列 C 函數:
#include <windows.h> #include <string> #include <iostream> std::wstring ExePath() { TCHAR buffer[MAX_PATH] = { 0 }; GetModuleFileName(NULL, buffer, MAX_PATH); std::wstring::size_type pos = std::wstring(buffer).find_last_of(L"\/"); return std::wstring(buffer).substr(0, pos); } int main() { std::cout << "my directory is " << ExePath() << "\n"; }
以上是C語言中如何取得目前目錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!