Użyj tego kodu:
HttpContext.Current.Server.MapPath("~")
Szczegółowe odniesienie:
Server.MapPath
określa ścieżkę względną lub wirtualną do zamapowania na katalog fizyczny.
Server.MapPath(".")
zwraca bieżący katalog fizyczny wykonywanego pliku (np. aspx)
Server.MapPath("..")
zwraca katalog nadrzędny
Server.MapPath("~")
zwraca ścieżkę fizyczną do katalogu głównego aplikacji
Server.MapPath("/")
zwraca fizyczną ścieżkę do katalogu głównego nazwy domeny (niekoniecznie jest taka sama jak katalog główny aplikacji)
Przykład:
Załóżmy, że wskazałeś aplikację witryny internetowej ( http://www.example.com/ ) do
C:\Inetpub\wwwroot
i zainstalowałeś aplikację sklepu (podsieć jako katalog wirtualny w usługach IIS, oznaczoną jako aplikacja) w
D:\WebApps\shop
Na przykład, jeśli zadzwonisz Server.MapPath
w następującym żądaniu:
http://www.example.com/shop/products/GetProduct.aspx?id=2342
następnie:
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
Jeśli Path zaczyna się od forward (/) lub backward slash (), MapPath
metoda zwraca ścieżkę tak, jakby Path była pełną, wirtualną ścieżką.
Jeśli Path nie zaczyna się od ukośnika, MapPath
metoda zwraca ścieżkę względem katalogu przetwarzanego żądania.
Uwaga: w języku C # @ jest dosłownym operatorem ciągu znaków, co oznacza, że ciąg powinien być używany „tak jak jest” i nie może być przetwarzany dla sekwencji ucieczki.
Przypisy
Server.MapPath(null)
i Server.MapPath("")
spowoduje również ten efekt.