Server.MapPath(".")
、Server.MapPath("~")
、Server.MapPath(@"\")
の違いを説明できる人はいServer.MapPath("/")
ますか?
asp.net - Server.MapPath(".")、Server.MapPath("~")、Server.MapPath(@"\")、Server.MapPath("/")。違いはなんですか?
Manu
質問する
503369 次
3 に答える
830
Server.MapPathは、物理ディレクトリにマップする相対パスまたは仮想パスを指定します。
Server.MapPath(".")
1は、実行中のファイル (aspx など) の現在の物理ディレクトリを返します。Server.MapPath("..")
親ディレクトリを返しますServer.MapPath("~")
アプリケーションのルートへの物理パスを返しますServer.MapPath("/")
ドメイン名のルートへの物理パスを返します (必ずしもアプリケーションのルートと同じではありません)
例:
Web サイト アプリケーション ( http://www.example.com/
) を指定したとします。
C:\Inetpub\wwwroot
ショップアプリケーション(アプリケーションとしてマークされたIISの仮想ディレクトリとしてのサブWeb)をインストールしました
D:\WebApps\shop
たとえばServer.MapPath()
、次のリクエストを呼び出す場合:
http://www.example.com/shop/products/GetProduct.aspx?id=2342
それから:
Server.MapPath(".")
1返品D:\WebApps\shop\products
Server.MapPath("..")
戻り値D:\WebApps\shop
Server.MapPath("~")
戻り値D:\WebApps\shop
Server.MapPath("/")
戻り値C:\Inetpub\wwwroot
Server.MapPath("/shop")
戻り値D:\WebApps\shop
/
Path がスラッシュ ( ) またはバックスラッシュ ( \
) で始まる場合MapPath()
、 は Path が完全な仮想パスであるかのようにパスを返します。
Path がスラッシュで始まらない場合、 はMapPath()
処理中のリクエストのディレクトリに対する相対パスを返します。
注: C# では、@
はそのままのリテラル文字列演算子であり、文字列を「そのまま」使用し、エスケープ シーケンスで処理しないことを意味します。
脚注
Server.MapPath(null)
そして、この効果も生み出しServer.MapPath("")
ます。
于 2008-11-09T10:01:15.797 に答える