server.mappath メソッドは、それを必要とする友人が参照できるように編成されています。/現在のディレクトリ
/Webサイトのホームディレクトリ
../上位ディレクトリ
~/Webサイト仮想ディレクトリ
現在の Web サイトのディレクトリが E:/wwwroot の場合、アプリケーションの仮想ディレクトリは E:/wwwroot/company、閲覧されたページのパスは E:/wwwroot/company/news/show.asp です。
show.asp ページで使用されます
Server.MapPath(./) はパス E:/wwwroot/company/news を返します。
Server.MapPath(/) はパス E:/wwwroot を返します。
Server.MapPath(../) はパス E:/wwwroot/company を返します。
Server.MapPath(~/) はパス E:/wwwroot/company を返します。
サーバー.MapPath(request.ServerVariables(Path_Info))
Request.ServerVariables(Path_Translated)
上記 2 つのメソッドのリターン パスは D:/wwwroot/company/news/show.asp です。
MapPath メソッドは、指定された相対パスまたは仮想パスをサーバー上の対応する物理ディレクトリにマップします。
文法
Server.MapPath(パス)
パラメータ
パス
マッピングする物理ディレクトリへの相対パスまたは仮想パスを指定します。 Path がスラッシュ (/) またはバックスラッシュ (/) で始まる場合、MapPath メソッドはパスを返すときに Path を完全な仮想パスとして扱います。 Path がスラッシュで始まらない場合、MapPath メソッドは .asp ファイル内の既存のパスを基準とした相対パスを返します。
コメント
MapPath メソッドは、相対パス構文 (.) または (..) をサポートしていません。たとえば、次の相対パス ../MyDir/MyFile.txt はエラーを返します。
MapPath メソッドは、返されたパスが正しいかどうか、またはサーバー上に存在するかどうかをチェックしません。
MapPath メソッドは、指定されたディレクトリが存在するかどうかに関係なくパスのみをマップするため、まず MapPath メソッドを使用してパスを物理ディレクトリ構造にマップし、次にそれをサーバー上に指定されたディレクトリまたはファイルを作成するコンポーネントに渡すことができます。
例
次の例では、次のスクリプトを含むファイル 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>
次の 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>