2008-10-17 5 views

답변

2
System.Web.HttpServerUtility.MapPath("~/filename.ext"); 

은 System.IO 방법 등에서 사용할 물리적 (디스크) 경로를 제공합니다.

System.Web.Hosting.VirtualPathUtility.ToAbsolute("~/filename.ext"); 

은 "절대적인"가상 경로를 제공합니다. 이것은 전체 URL이 아니지만 도메인의 루트 일 필요는 없습니다. 응용 프로그램이 하위 디렉토리에 뿌리를 둔 경우

 
/admin/filename.ext 

과 같을 수 있습니다.

0

은 내가 원했던 것 ...에 가까웠다. 컴파일하는 것 같지 않거나 내가 부른 문맥에서 유효하지 않았다.

그러나 나는 당신이 그렇게 같은 때 ResolveUrl 방법을 C#을에 탈옥 사용할 수 있습니다 ASPX 마크 업에 있다면 내가 System.Web.HttpRuntime.AppDomainAppPath

+0

아. HttpServerUtility.MapPath ("~")와 동일해야합니다. – harpo

+0

사용하면오류 비 정적 필드, 메서드 또는 속성 인 'System.Web. HttpServerUtility.MapPath (string) ' –

+0

이상합니다. 어디서 전화 한거야? – harpo

0

에 필요한 것을 발견

<%= Page.ResolveUrl("~/PathFromRoot/YourFile.pdf") %> 
0

오래된 질문, 나도 알아,하지만 비슷한 대답을 찾는 동안 그것을 발견. API가 변경되지 않은 한 하포의 대답이 작동하지 않는 이유는 MapPath이 정적 메서드가 아닌 인스턴스 메서드이기 때문입니다. 그러나 두려워하지 마십시오. Controller - Server 속성의 각 인스턴스에 HttpServerUtility의 인스턴스가 있습니다. 그래서 당신의 경우에, 만약 당신이 컨트롤러 (또는, 내가보기 엔 전망) :

var appRoot = Server.MapPath("~/"); 

그 트릭을해야합니다!

관련 문제