MapPath メソッドは、指定された相対パスや仮想パスを、サーバー上の対応する物理ディレクトリにマップします。
Server.MapPath( path )
path
物理ディレクトリにマップする相対パスまたは仮想パスを指定します。path にスラッシュ (/) または円記号 (\) で始まるパスを指定した場合、MapPath メソッドは、path を仮想フルパスであるとみなした場合のパスを返します。path にスラッシュ以外の文字で始まるパスを指定した場合には、MapPath メソッドは、処理中の .asp ファイルのディレクトリからの相対パスを返します。
注意 レジストリ エントリ EnableParentPath が TRUE に設定されていれば、path パラメータに ../../Scripts/ などの相対パスを指定できます。これはデフォルトの設定です。
レジストリ エントリの詳細については、「Active Server Pages スクリプト ガイド」の「レジストリ エントリの設定」を参照してください。
MapPath メソッドでは、返されるパスが有効であるかどうか、またサーバー上に存在するかどうかはチェックされません。
MapPath メソッドは、指定されたディレクトリが現在存在しているかどうかにかかわらず、パスをマップします。このため、MapPath メソッドを使ってパスを物理ディレクトリ構造にマップしてから、指定されたディレクトリやファイルをサーバー上に作成するコンポーネントにそのパスを渡すことができます。
以下のスクリプト例で、ファイル Data.txt は C:\Inetpub\Wwwroot\Script というディレクトリにあります。また、次のスクリプトが記述されている Test.asp というファイルも同じディレクトリにあります。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>
次の 2 つの例は、スラッシュ文字を使い、返されるパスがサーバー上の完全な仮想パスを参照するように指定します。
<%= server.mappath("/script/data.txt")%><BR> <%= server.mappath("\script")%><BR>
上の例からは、次の出力が得られます。
c:\inetpub\script\data.txt<BR> c:\inetpub\script<BR>
次の例は、スラッシュ (/) または円記号 (\) のどちらかを使ってホーム ディレクトリからの相対物理パスを返す方法を示したものです。
<%= server.mappath("/")%><BR> <%= server.mappath("\")%><BR>
上の例からは、次の出力が得られます。
c:\inetpub\wwwroot<BR> c:\inetpub\wwwroot<BR>