Verwenden Sie diesen Code:
HttpContext.Current.Server.MapPath("~")
Detaillierte Referenz:
Server.MapPath
Gibt den relativen oder virtuellen Pfad an, der einem physischen Verzeichnis zugeordnet werden soll.
Server.MapPath(".")
Gibt das aktuelle physische Verzeichnis der ausgeführten Datei (z. B. aspx) zurück
Server.MapPath("..")
Gibt das übergeordnete Verzeichnis zurück
Server.MapPath("~")
Gibt den physischen Pfad zum Stammverzeichnis der Anwendung zurück
Server.MapPath("/")
Gibt den physischen Pfad zum Stammverzeichnis des Domänennamens zurück (muss nicht unbedingt mit dem Stammverzeichnis der Anwendung identisch sein).
Ein Beispiel:
Angenommen, Sie haben auf eine Website-Anwendung ( http://www.example.com/ ) verwiesen
C:\Inetpub\wwwroot
und installierte Ihre Shop-Anwendung (Sub-Web als virtuelles Verzeichnis in IIS, als Anwendung markiert) in
D:\WebApps\shop
Zum Beispiel, wenn Sie Server.MapPath
folgende Anfrage anrufen :
http://www.example.com/shop/products/GetProduct.aspx?id=2342
dann:
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
Wenn Path entweder mit einem Schrägstrich vorwärts (/) oder rückwärts () beginnt, gibt die MapPath
Methode einen Pfad zurück, als wäre Path ein vollständiger virtueller Pfad.
Wenn Path nicht mit einem Schrägstrich beginnt, gibt die MapPath
Methode einen Pfad relativ zum Verzeichnis der zu verarbeitenden Anforderung zurück.
Hinweis: In C # ist @ der wörtliche wörtliche Zeichenfolgenoperator. Dies bedeutet, dass die Zeichenfolge "wie sie ist" verwendet und nicht für Escape-Sequenzen verarbeitet werden sollte.
Fußnoten
Server.MapPath(null)
und Server.MapPath("")
wird diesen Effekt auch erzeugen.