Yanıtlar:
Server.MapPath , fiziksel bir dizine eşlenecek göreli veya sanal yolu belirtir .
Server.MapPath(".")
1 , yürütülmekte olan dosyanın (örneğin aspx) geçerli fiziksel dizinini döndürürServer.MapPath("..")
üst dizini döndürürServer.MapPath("~")
uygulamanın kök dizinine giden fiziksel yolu döndürürServer.MapPath("/")
alan adının kök dizinine giden fiziksel yolu döndürür (uygulamanın kök diziniyle aynı olması gerekmez)Bir örnek:
Diyelim ki bir web sitesi uygulaması ( http://www.example.com/
)
C:\Inetpub\wwwroot
ve mağaza uygulamanızı (alt web'i sanal dizin olarak IIS'de, uygulama olarak işaretlenmiş)
D:\WebApps\shop
Örneğin, Server.MapPath()
aşağıdaki istekte bulunursanız :
http://www.example.com/shop/products/GetProduct.aspx?id=2342
sonra:
Server.MapPath(".")
1 dönüşD:\WebApps\shop\products
Server.MapPath("..")
İadeler D:\WebApps\shop
Server.MapPath("~")
İadeler D:\WebApps\shop
Server.MapPath("/")
İadeler C:\Inetpub\wwwroot
Server.MapPath("/shop")
İadeler D:\WebApps\shop
Yol ileri eğik çizgi ( /
) veya ters eğik çizgi ( \
) ile MapPath()
başlarsa, Yol tam, sanal bir yolmuş gibi bir yol döndürür.
Yol eğik çizgi ile başlamazsa, MapPath()
işlenen isteğin dizinine göre bir yol döndürür.
Not: C # 'da, @
dize "olduğu gibi" kullanılması ve kaçış dizileri için işlenmemesi anlamına gelen birebir değişmez dize operatörüdür.
Dipnotlar
Server.MapPath(null)
ve Server.MapPath("")
edecektir de bu etkiyi .@ Splattne'nin cevabını biraz genişletmek için:
MapPath(string virtualPath)
aşağıdakileri çağırır:
public string MapPath(string virtualPath)
{
return this.MapPath(VirtualPath.CreateAllowNull(virtualPath));
}
MapPath(VirtualPath virtualPath)
sırayla MapPath(VirtualPath virtualPath, VirtualPath baseVirtualDir, bool allowCrossAppMapping)
aşağıdakileri içeren çağrılar :
//...
if (virtualPath == null)
{
virtualPath = VirtualPath.Create(".");
}
//...
Yani MapPath(null)
ya ararsanız ya MapPath("")
da etkili bir şekildeMapPath(".")
1) Server.MapPath(".")
- Yürütülen dosyanın "Geçerli Fiziksel Dizini" ni döndürür aspx
.
Ör. varsaymak D:\WebApplications\Collage\Departments
2) Server.MapPath("..")
- "Üst Dizin" i döndürür
Ör. D:\WebApplications\Collage
3) Server.MapPath("~")
- "Uygulamanın Köküne Fiziksel Yol" döndürür
Ör. D:\WebApplications\Collage
4) Server.MapPath("/")
- Etki Alanı Adının kök dizinine giden fiziksel yolu döndürür
Ör. C:\Inetpub\wwwroot