728x90
이따금 프로그램을 작성하다보면 로그를 남긴다던가 또는 설정 내용을 파일에 기록해야하는 경우가 있을 경우 절대 경로가 아닌 작업경로를 사용하는 경우가 있다. 게다가 윈도우즈 버전이 거듭할수록 보안 이슈가 강화되기 때문에 관리자 권한이 아닌 경우 루트 디렉터리의 접근이 제한되기 때문에 작업 디렉터리를 사용해야하는 경우가 빈번하게 발생한다. (물론 관리자 권한으로 프로그램을 다시 실행하면 되긴 하다.)
관련하여 코드를 작성하다보니 약간의 이슈들이 있어서 내용을 남긴다.
일반적인 방법
Directory.GetCurrentDirectory()
위의 방법은 일반적으로 사용하는 방법이다. 하지만 백그라운드로 동작하는 프로그램에는 큰 이슈가 발생한다. 응답 경로가 C:\Windows\System32 경로로 이동되기 때문이다. 이는 백그라운드로 fork 하여 실행해주는 시스템 프로세스에 종속되기 때문에 발생하는 현상이다. 따라서 다음의 방법을 사용해야 한다.
백그라운드를 위한 방법
AppDomain.CurrentDomain.BaseDirectory
위의 방법을 사용하면 백그라운드에서도 원하는 프로그램 실행 경로를 얻어올 수 있다.
반응형
'프로그래밍' 카테고리의 다른 글
Object Calisthenics (0) | 2021.03.02 |
---|---|
TDD and BDD (0) | 2021.03.02 |
Blazor (0) | 2021.03.02 |
Javascript 값 복사 (copy value) (0) | 2021.03.02 |
Mysql 과 java 데이터 타입 비교 (0) | 2021.03.02 |