Bu kodu kullanın:
HttpContext.Current.Server.MapPath("~")
Ayrıntılı Referans:
Server.MapPath
fiziksel bir dizine eşlenecek göreli veya sanal yolu belirtir.
Server.MapPath(".")
çalıştırılan dosyanın (örneğin aspx) geçerli fiziksel dizinini döndürür
Server.MapPath("..")
üst dizini döndürür
Server.MapPath("~")
fiziksel yolu uygulamanın köküne döndürür
Server.MapPath("/")
etki alanı adının köküne fiziksel yolu döndürür (uygulamanın kökü ile aynı olması gerekmez)
Bir örnek:
Bir web sitesi uygulamasını ( http://www.example.com/ ) şu adrese gösterdiğinizi varsayalım:
C:\Inetpub\wwwroot
ve mağaza uygulamanızı (IIS'de sanal dizin olarak alt web, uygulama olarak işaretlenmiş)
D:\WebApps\shop
Örneğin, Server.MapPath
aşağıdaki talepte ararsanız :
http://www.example.com/shop/products/GetProduct.aspx?id=2342
sonra:
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, ileri (/) veya geriye eğik çizgi () ile başlıyorsa, MapPath
yöntem , Yol tam, sanal bir yolmuş gibi bir yol döndürür.
Yol eğik çizgiyle başlamazsa, MapPath
yöntem işlenmekte olan isteğin dizinine göre bir yol döndürür.
Not: C # 'da @ harfi harfine değişmez dize operatörüdür, yani dizenin "olduğu gibi" kullanılması ve kaçış dizileri için işlenmemesi gerekir.
Dipnotlar
Server.MapPath(null)
ve Server.MapPath("")
bu etkiyi de yaratacaktır.