[C++] Qt 애플리케이션에서 현재 작업 디렉토리 가져 오기


Answers

QCoreApplication :: applicationDirPath () 시도한 적이 있습니까?

qDebug() << "App path : " << qApp->applicationDirPath();
Question

Qt 라이브러리를 사용하는 C ++ 프로그램을 작성 중입니다. 내 홈 bin 디렉토리에는 실행 파일에 대한 심볼릭 링크가 있습니다. 내 프로그램의 현재 작업 디렉토리가 내 터미널에있는 디렉토리 (즉, pwd 명령의 결과)가되도록하고 싶습니다. 나는 QDir::currentPath() 함수를 보았지만 바이너리가있는 디렉토리를 되돌려 준다.

현재 작업 디렉토리를 찾으려면 어떻게해야합니까?




Windows에서 Qt 5.5를 실행 중이고 QDir의 기본 생성자가 응용 프로그램 디렉토리가 아닌 현재 작업 디렉토리를 선택하는 것으로 보입니다.

나는 getenv PWD가 cross-platform에서 작동하는지 확신 할 수 없다. 쉘이 애플리케이션을 시작했을 때 현재 작업 디렉토리로 설정되어 있고 애플리케이션 자체가 수행 한 작업 디렉토리 변경을 포함하지 않는다고 생각한다. OP는이 동작을보고 있습니다).

그래서 나는 당신에게 현재 작업 디렉토리 (애플리케이션의 바이너리 위치 아님)를 줄 수있는 다른 방법들을 추가 할 것이라고 생각했다.

// using where a relative filename will end up
QFileInfo fi("temp");
cout << fi.absolutePath() << endl;

// explicitly using the relative name of the current working directory
QDir dir(".");
cout << dir.absolutePath() << endl;