Використовуйте цей код:
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("")дасть цей ефект теж.