MapPath 메서드는 지정된 상대 경로 또는 가상 경로를 서버상에서 해당하는 실제 디렉터리에 매핑합니다.
Server.MapPath( Path )
MapPath 메서드는 반환하는 경로가 유효한지 또는 서버에 존재하는지 여부 등을 확인하지 않습니다. MapPath는 Session.OnEnd 및 Application.OnEnd 이벤트에서는 사용할 수 없습니다.
MapPath 메서드는 지정된 디렉터리가 현재 존재하는지에 상관 없이 경로를 매핑하기 때문에 MapPath 메서드를 사용하여 실제 디렉터리 구조로 경로를 매핑한 다음, 지정된 디렉터리 또는 파일을 서버에 작성하는 구성 요소로 이 경로를 전달할 수 있습니다.
보안상의 이유로 AspEnableParentPaths 속성의 기본값은 FALSE로 설정되어 있습니다. AspEnableParentPaths가 TRUE로 설정되지 않으면 스크립트는 실제 디렉터리 구조를 액세스하지 못합니다.
아래 예에서 data.txt 파일은 다음 스크립트를 포함하는 test.asp 파일과 마찬가지로 C:\Inetpub\Wwwroot\Script 디렉터리에 있습니다. C:\Inetpub\Wwwroot 디렉터리는 서버의 홈 디렉터리로 설정되어 있습니다.
다음은 PATH_INFO 서버 변수를 사용하여 현재 파일의 실제 경로를 매핑하는 예제입니다.
<%= Server.MapPath(Request.ServerVariables("PATH_INFO"))%><BR>
앞의 스크립트는 다음의 결과를 생성합니다.
c:\inetpub\wwwroot\script\test.asp<BR>
다음 예제에서는 경로 매개 변수가 슬래시 문자로 시작하지 않기 때문에 경로 매개 변수가 현재 디렉터리의 상대 경로로 매핑됩니다. 이 경우에는 C:\Inetpub\Wwwroot\Script입니다.
<%= Server.MapPath("data.txt")%><BR>
<%= Server.MapPath("script/data.txt")%><BR>
앞의 스크립트는 다음과 같은 결과를 생성합니다.
c:\inetpub\wwwroot\script\data.txt<BR>
c:\inetpub\wwwroot\script\script\data.txt<BR>
다음 두 예제는 슬래시 문자를 사용하여 반환된 경로를 서버의 완전한 가상 경로로 조회하도록 지정합니다.
<%= Server.MapPath("/script/data.txt")%><BR>
<%= Server.MapPath("\script")%><BR>
앞의 스크립트는 다음과 같은 결과를 생성합니다.
c:\inetpub\wwwroot\script\data.txt<BR>
c:\inetpub\wwwroot\script<BR>
다음은 웹 사이트 루트의 홈 디렉터리에 실제 경로를 반환하기 위해 슬래시(/) 또는 역슬래시(\)를 앞에 사용하는 방법을 보여주는 예제입니다.
<%= Server.MapPath("/")%><BR>
<%= Server.MapPath("\")%><BR>
앞의 스크립트는 다음과 같은 결과를 생성합니다.
c:\inetpub\wwwroot<BR>
c:\inetpub\wwwroot<BR>
다음은 상대 경로를 사용하여 웹 브라우저에서 보고 있는 페이지에 실제 상대 경로를 반환하는 방법을 보여주는 예제입니다.
<%= Server.MapPath("../")%><BR>
<%= Server.MapPath("..\")%><BR>