현재 작업 디렉토리의 경로는 GetCurrentDirectory 함수로 확인할 수 있다.
한편 실행파일이 위치한 경로의 경우 운영체제에 따라 확인하는 방법이 다른데 윈도우에서는 Windows.h 를 포함하고 GetModuleFileName() 함수를 사용하면 현재 실행중인 실행파일의 path를 알 수있다.
GetModuleFileName는 유니코드를 사용하냐 ANSI를 사용하냐에 따라 GetModuleFileNameW 또는 GetModuleFileNameA로 정의된다.
wchar_t exePath[MAX_PATH];
GetModuleFileName(NULL, exePath, MAX_PATH);
wchar_t* folderPath = new wchar_t[wcslen(exePath) + 1];
wcscpy(folderPath, exePath);
wchar_t* lastBackslash = wcsrchr(folderPath, L'\\');
if (lastBackslash != NULL)
{
*lastBackslash = L'\0';
}
MAX_PATH는 Windows 운영 체제에서 파일 경로 및 파일 이름의 최대 길이를 나타내는 상수로 260으로 정의되어 있다.
그리고 문자열에서 특정 문자의 위치를 뒤에서부터 찾는 strrchr 또는 _tcsrchr 또는 wcsrchr 함수를 같이 사용하면 실행파일이 포함된 폴더 경로 또는 확장자를 제외한 파일명까지의 경로 등을 얻을 수 있다.
'프로그래밍 > C++' 카테고리의 다른 글
C++ ] 레지스트리 등록하여 윈도우 시작시 앱 자동 실행 하기 (0) | 2023.09.22 |
---|---|
Windows 프로그래밍 시 OutputDebugString 사용해 디버깅 정보 출력하기 + 가변인자 받아서 디버깅 정보 출력 (0) | 2023.09.21 |
C++ ] Winsock2의 bind 함수와 functional 헤더의 std::bind 함수 충돌 방지 (0) | 2023.09.17 |
C++ ] 멤버 함수 포인터 사용하기 / 함수포인터 대신 std::function 사용 / using으로 별칭 사용 (0) | 2023.09.15 |
Precompiled Header를 사용해 컴파일 시간 단축하기 (0) | 2023.09.15 |