49

가능한 중복 :

C #을 사용하여 내 .exe의 경로를 가져옵니다.

안녕하세요, 저는 질문이 있습니다. 루트 프로젝트 경로는 어떻게 얻을 수 있습니까? 솔루션이란 프로젝트의 첫 번째 폴더입니다. 그 명령을 발견 :

System.IO.Directory.GetCurrentDirectory();

그러나 릴리스 폴더에 대한 특정 경로를 제공합니다. wanted_Path / bin / Release

그래서 다른 코드가 있습니까, 수동으로 잘라내거나 내 파일을 Release 폴더에 넣어야합니까 ??


  • 나는 이것을 생각 해요링크당신이 찾고있는 것입니다. - Mr_Green
  • 실행 경로를 원한다는 뜻입니까? 프로젝트 경로는건물. - Oded
  • 이것이 exe 로의 경로를 묻고있는 이전 질문의 사본이라고 생각하지 않습니다. 이 프로젝트에 대한 경로를 묻습니다! - oefe
  • @oefe가 언급 한 이유 때문에 복제본이 아닙니다. - Paul T Davies
  • @oefe 재개를 위해 지명되었습니다. - Kyle Strand

4 답변


38

당신이 사용할 수있는

string wanted_path = Path.GetDirectoryName(Path.GetDirectoryName(System.IO.Directory.GetCurrentDirectory()));


  • 나에게 그것은 "C : \\ Program Files (x86) \\ Common Files \\ Microsoft Shared"를 리턴한다. 프로젝트 경로 대신 - algreat
  • 위의 코드는 Visual Studio 내에서 실행하는 경우에만 적용 할 수 있습니다. - PaRiMaL RaJ
  • System.AppDomain.CurrentDomain.BaseDirectory를 사용하지 않는 이유는 무엇입니까? 더 간단하고 읽기 쉽고 올바른 경로를 제공합니다. - algreat
  • @algreat - 그는 root proj 경로를 요구하고 있으며, whch는 2 레벨입니다! - PaRiMaL RaJ

17

var requiredPath = Path.GetDirectoryName(Path.GetDirectoryName(
System.IO.Path.GetDirectoryName( 
      System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase )));


73

그러면 루트 폴더가 생성됩니다.

System.AppDomain.CurrentDomain.BaseDirectory

.. 또는 ./ 등을 사용하여 여기에서 이동할 수 있습니다. 추가 ... .sln 파일을 찾을 수있는 폴더로 이동합니다.


  • 사용하는 방법..또는../..System.AppDomain.CurrentDomain.BaseDirectory? - Stiger
  • @Stiger :Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"..\\..\\")) - Adiono
  • .NET Core 버전은 여기에 있습니다.Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, "..\\..\\..\\")); - nopara73
  • vs2017 15.6에서는 실행 파일의 디렉토리를 반환합니다. - DSUK

6

귀하의 프로그램은 VS 프로젝트의 위치를 알지 못하므로 참조하십시오.내 .exe 경로를 얻으십시오.가서../..프로젝트 경로를 얻으십시오.


  • @CharlesB 사용 방법../..? - Stiger
  • 상대 경로로 사용하십시오. 프로젝트 디렉토리를 참조합니다. - CharlesB

연결된 질문


관련된 질문

최근 질문