kullanın bu kod:
HttpContext.Current.Server.MapPath("~")
Detaylı Referans:
Server.MapPath
fiziksel bir dizine eşlemek için akraba veya sanal yolu belirtir.
Server.MapPath(".")
dosyanın geçerli fiziksel dizini (örneğin aspx)
Server.MapPath("~")
döner fiziksel yol uygulamanın köküne
Server.MapPath("..")
döner üst dizin yürütülmektedir döndürür
Server.MapPath("/")
döner etki alanı adının kökü fiziksel yolunun ( uygulamasının kökü ile aynı olması gerekmez)
Bir örnek:
Diyelim ki
C:\Inetpub\wwwroot
için bir web sitesi uygulaması (http://www.example.com/) işaret etti ve içinde mağaza uygulamasını (uygulaması olarak işaretlenen IIS sanal dizine, gibi alt web) yüklü diyelim Örneğin
D:\WebApps\shop
, aşağıdaki istekte Server.MapPath
ararsanız:
Daha sonra
http://www.example.com/shop/products/GetProduct.aspx?id=2342
: Yol tam, sanal yol sanki
Server.MapPath(".") returns D:\WebApps\shop\products
Server.MapPath("..") returns D:\WebApps\shop
Server.MapPath("~") returns D:\WebApps\shop
Server.MapPath("/") returns C:\Inetpub\wwwroot
Server.MapPath("/shop") returns D:\WebApps\shop
Yol bir ileri (/) ya da geriye doğru eğik çizgi (ile başlar ise), MapPath
yöntem yolu döndürür.
Yol bir eğik çizgi ile başlamıyorsa, MapPath
yöntemi, işlenmekte olan isteğin dizinine göre bir yol döndürür.
Not: C# içinde @, dizenin "olduğu gibi" kullanılması ve kaçış dizileri için işlenmemesi gerektiği anlamında bir söz dizimi operatörüdür.
Dipnotlar
Server.MapPath(null)
ve Server.MapPath("")
da bu etkiyi üretecek.
İlgili post [burada] (https://stackoverflow.com/q/6041332/465053). Net uygulama yürütme yolları genel olarak bahseder. – RBT
[.Net'deki web uygulamalarındaki sunucu harita yolları] hakkında bir başka mesaj (https://stackoverflow.com/q/275781/465053) – RBT