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.MapPathw 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 (), MapPathmetoda zwraca ścieżkę tak, jakby Path była pełną, wirtualną ścieżką.
Jeśli Path nie zaczyna się od ukośnika, MapPathmetoda 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.