2009-05-18 3 views
0

bin 폴더 (프로젝트의 exe 파일 위치)와 같은 기본 위치에서 내 XHTML dtd 파일을 선택하고 C : \ temp \ xhtml1.dtd와 같은 파일의 정확한 경로를 지정하여 하드 코딩하지 않습니다. 내 코드는 C#입니다. 누구든지 어떻게 할 수 있습니까?하드 코딩이 아닌 기본 위치에서 파일을 선택하는 방법은 무엇입니까?

+0

(재 주석) - 당신이 왜 파일 경로를 사용하는 문제의 예를 제공, URI를 사용하는 경우? * 실제 설정은 무엇입니까? 웹 앱입니까? ClickOnce 응용 프로그램? 뭐? –

답변

0

나는 이것이 당신이 원하는 것일 것이라고 생각합니까?

string xhtml = Directory.GetCurrentDirectory()+"xhtml1.dtd"; 
+0

그것은 다를 수있는 (그리고 런타임에 변경할 수 있습니다) 작업 디렉토리를 제공합니다 –

+0

나는 문자열을 사용하고 있지만 uri. 나는 어떻게해서 uri를 위해 동일한 것을 할 수 있 었는가? –

+0

고마워요 ... 완료된 –

3

하나의 옵션은 응용 프로그램 기반 사용하는 것입니다

string path = Path.Combine(
      AppDomain.CurrentDomain.SetupInformation.ApplicationBase, 
      "foo.dtd"); 
+0

나는 문법이 무엇이겠습니까? –

+0

Uri가이 Uri와 같은 경우 u = 새로운 Uri ("dtds/foo.dtd")를 사용하면 @ Marc의 대답에서 "foo.dtd"문자열을 u.ToString()으로 바꿀 수 있습니다. 참고 : AppDomain.CurrentDomain.SetupInformation.ApplicationBase가 절대 경로를 반환하므로 상대 Uri를 사용해야합니다. – TheVillageIdiot

+0

죄송합니다, 내가 마지막 코멘트를 넣을 때 u.ToString()을 사용하면 C : \ temp \ test \ bin \ dtds/foo.dtd와 같은 재밌는 문자열을 줄 것입니다. Path.Combind (Appdomain ....., string.Join (@ "\", u.Segments)) – TheVillageIdiot

관련 문제