2009-10-30 6 views
2

을 통해 실행중인 루트 디렉토리를 얻는 유비쿼터스 애플리케이션은 필자가 파일 시스템에 액세스 할 수 있어야합니다. 웹 서버 또는 콘솔 응용 프로그램에서 코드가 실행되는 경우 응용 프로그램이 실행되는 루트 디렉토리를 어떻게 얻을 수 있습니까? C : \ TheApplication ...응용 프로그램이 C#

감사합니다!

가장 쉬운

답변

9

는 아마도 :

String path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); 

당신은 두 개의 클래스에 대한 자세한 내용을 여기 읽을 수 있습니다 :이 도움이

System.Reflection.Assembly.GetExecutingAssembly().Location 

희망,

-Oisin

+0

Ahhhhh ... 오늘은 내 바보 모자가 있습니다.) 완전히 잊어 버렸습니다. – DDiVita

+0

호기심 때문에 실행중인 어셈블리가 전역 어셈블리 캐시에있을 때 반환되는 것이 궁금합니다. –

+0

@jdk, 그냥 추측하지만 리플렉션 호출을 배치하는 어셈블리가 아니라 호출 EXE를 반환하지 않습니까? – harpo

1

당신이 시도 할 수 있습니다 :

0

더 쉬운 윈폼 응용 프로그램에 대한

string myPath = Application.ExecutablePath; 

,이 항상 설정됩니다.

+0

필자는 C# 프로그래머가 아니며 문서를 찾지는 못했지만 현재 작업 디렉토리가 아닌 실행 파일로 경로를 반환 할 것이라고 기대합니다. 나는 OP가 작업 디렉토리를 원한다고 생각합니다. – rmeador

1

asp.net 및 Windows 서비스 내에서 작동하는 아주 기본적인 방법을 테스트했습니다.

var binariesPath = string.IsNullOrEmpty(AppDomain.CurrentDomain.RelativeSearchPath) 
        ? AppDomain.CurrentDomain.BaseDirectory // Windows Service 
        : AppDomain.CurrentDomain.RelativeSearchPath; // Asp.net 
관련 문제