Використовуйте цей код:
HttpContext.Current.Server.MapPath("~")
Детальна довідка:
Server.MapPath
задає відносний чи віртуальний шлях для відображення у фізичний каталог.
Server.MapPath(".")
повертає поточний фізичний каталог файлу (наприклад, aspx), який виконується
Server.MapPath("..")
повертає батьківський каталог
Server.MapPath("~")
повертає фізичний шлях до кореня програми
Server.MapPath("/")
повертає фізичний шлях до кореня доменного імені (не обов'язково такий же, як корінь програми)
Приклад:
Скажімо, ви вказали на додаток веб-сайту ( http://www.example.com/ )
C:\Inetpub\wwwroot
і встановив свою програму магазину (під веб, як віртуальний каталог у IIS, позначений як додаток) у
D:\WebApps\shop
Наприклад, якщо ви телефонуєте Server.MapPath
в наступному запиті:
http://www.example.com/shop/products/GetProduct.aspx?id=2342
тоді:
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
Якщо Path починається з прямої (/) або зворотної косої риски (), MapPath
метод повертає шлях так, як ніби Path був повним віртуальним шляхом.
Якщо шлях не починається з косою рисою, MapPath
метод повертає шлях відносно каталогу запиту, який обробляється.
Примітка: у C #, @ - оператор дослівної лінійної рядкової лінії, що означає, що рядок повинен використовуватися "як є", а не оброблятися для послідовностей втечі.
Виноски
Server.MapPath(null)
і Server.MapPath("")
дасть цей ефект теж.