내 콘솔 앱이 C #으로 실행중인 디렉터리를 어떻게 알 수 있습니까?
답변:
.exe 파일이있는 디렉토리를 가져 오려면 다음을 수행하십시오.
AppDomain.CurrentDomain.BaseDirectory
현재 디렉토리를 가져 오려면 :
Environment.CurrentDirectory
System.AppContext.BaseDirectory
.
응용 프로그램에 부여 된 권한에 따라 섀도 복사 가 적용 되는지 여부 와 기타 호출 및 배포 옵션에 따라 다른 방법이 작동하거나 다른 결과가 나올 수 있으므로 무기를 현명하게 선택해야합니다. 즉, 다음은 모두 상주하는 시스템에서 로컬로 실행되는 완전히 신뢰할 수있는 콘솔 응용 프로그램에 대해 동일한 결과를 생성합니다.
Console.WriteLine( Assembly.GetEntryAssembly().Location );
Console.WriteLine( new Uri(Assembly.GetEntryAssembly().CodeBase).LocalPath );
Console.WriteLine( Assembly.GetEntryAssembly().Location );
Console.WriteLine( Environment.GetCommandLineArgs()[0] );
Console.WriteLine( Process.GetCurrentProcess().MainModule.FileName );
필요한 정확한 권한을 확인하려면 위 구성원의 문서를 참조해야합니다.
.Net 핵심 콘솔 애플리케이션 프로젝트 이름이 DataPrep이라고 가정 해 보겠습니다.
프로젝트 기본 디렉토리 가져 오기 :
Console.WriteLine(Environment.CurrentDirectory);
출력 : ~ DataPrep \ bin \ Debug \ netcoreapp2.2
Get Project .csproj file directory:
string ProjectDirPath = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, @"..\..\..\"));
Console.WriteLine(ProjectDirPath);
출력 : ~ DataPrep \