새내기 질문 ...ASP.NET MVC 응용 프로그램의 디렉토리를 어떻게 검색합니까?
웹 응용 프로그램의 루트에있는 파일이있는 경우. 프로그래밍 방식으로 해당 파일의 경로를 어떻게 쿼리합니까? 즉, 어떤 디렉토리입니까?
새내기 질문 ...ASP.NET MVC 응용 프로그램의 디렉토리를 어떻게 검색합니까?
웹 응용 프로그램의 루트에있는 파일이있는 경우. 프로그래밍 방식으로 해당 파일의 경로를 어떻게 쿼리합니까? 즉, 어떤 디렉토리입니까?
System.Web.HttpServerUtility.MapPath("~/filename.ext");
은 System.IO 방법 등에서 사용할 물리적 (디스크) 경로를 제공합니다.
System.Web.Hosting.VirtualPathUtility.ToAbsolute("~/filename.ext");
은 "절대적인"가상 경로를 제공합니다. 이것은 전체 URL이 아니지만 도메인의 루트 일 필요는 없습니다. 응용 프로그램이 하위 디렉토리에 뿌리를 둔 경우
/admin/filename.ext
과 같을 수 있습니다.
은 내가 원했던 것 ...에 가까웠다. 컴파일하는 것 같지 않거나 내가 부른 문맥에서 유효하지 않았다.
그러나 나는 당신이 그렇게 같은 때 ResolveUrl 방법을 C#을에 탈옥 사용할 수 있습니다 ASPX 마크 업에 있다면 내가 System.Web.HttpRuntime.AppDomainAppPath에 필요한 것을 발견
<%= Page.ResolveUrl("~/PathFromRoot/YourFile.pdf") %>
오래된 질문, 나도 알아,하지만 비슷한 대답을 찾는 동안 그것을 발견. API가 변경되지 않은 한 하포의 대답이 작동하지 않는 이유는 MapPath
이 정적 메서드가 아닌 인스턴스 메서드이기 때문입니다. 그러나 두려워하지 마십시오. Controller
- Server
속성의 각 인스턴스에 HttpServerUtility
의 인스턴스가 있습니다. 그래서 당신의 경우에, 만약 당신이 컨트롤러 (또는, 내가보기 엔 전망) :
var appRoot = Server.MapPath("~/");
그 트릭을해야합니다!
아. HttpServerUtility.MapPath ("~")와 동일해야합니다. – harpo
사용하면오류 비 정적 필드, 메서드 또는 속성 인 'System.Web. HttpServerUtility.MapPath (string) ' –
이상합니다. 어디서 전화 한거야? – harpo