MapPath

The MapPath method maps the specified relative or virtual path to the corresponding physical directory on the server.

Syntax

Server.MapPath( Path )

 

Parameters
Path
Specifies the relative or virtual path to map to a physical directory. If Path starts with either a forward (/) or backward slash (\), the MapPath method returns a path as if Path is a full virtual path. If Path doesn't start with a slash, the MapPath method returns a path relative to the directory of the .asp file being processed.
Remarks

The MapPath method does not check whether the path it returns is valid or exists on the server. MapPath is not available in the Session.OnEnd and the Application.OnEnd events.

Because the MapPath method maps a path regardless of whether the specified directories currently exist, you can use the MapPath method to map a path to a physical directory structure, and then pass that path to a component that creates the specified directory or file on the server.

You can use the relative path syntax for the Path parameter if the AspEnableParentPaths property is set to TRUE (which is the default value). If you are concerned about allowing scripts to access the physical directory structure, you can disable this feature by setting the AspEnableParentPaths property to FALSE. You can accomplish this with either the Internet Information Services snap-in or with a script.

Example

For the examples below, the file data.txt is located in the directory, C:\Inetpub\Wwwroot\Script, as is the test.asp file that contains the following scripts. The C:\Inetpub\Wwwroot directory is set as the server's home directory.

The following example uses the server variable PATH_INFO to map the physical path of the current file. The following script

<%= server.mappath(Request.ServerVariables("PATH_INFO"))%><BR>
 

produces the output

c:\inetpub\wwwroot\script\test.asp<BR>
 

Because the path parameters in the following examples do not start with a slash character, they are mapped relative to the current directory, in this case C:\Inetpub\Wwwroot\Script. The following scripts

<%= server.mappath("data.txt")%><BR>
<%= server.mappath("script/data.txt")%><BR>
 

produce the following output

c:\inetpub\wwwroot\script\data.txt<BR>
c:\inetpub\wwwroot\script\script\data.txt<BR>
 

The next two examples use the slash characters to specify that the path returned should be looked up as complete virtual paths on the server. The following scripts

<%= server.mappath("/script/data.txt")%><BR>
<%= server.mappath("\script")%><BR>
 

produce the following output

c:\inetpub\wwwroot\script\data.txt<BR>
c:\inetpub\wwwroot\script<BR>
 

The following examples demonstrate how you can use either a forward slash (/) or a backslash (\) to return the physical path to the home directory. The following scripts

<%= server.mappath("/")%><BR>
<%= server.mappath("\")%><BR>
 

produce the following output

c:\inetpub\wwwroot<BR>
c:\inetpub\wwwroot<BR>
 
Applies To

Server Object

See Also

AspEnableParentPaths