Kann jemand den Unterschied zwischen Server.MapPath(".")
, Server.MapPath("~")
, Server.MapPath(@"\")
und Server.MapPath("/")
erklären?Server.MapPath ("."), Server.MapPath ("~"), Server.MapPath (@ ""), Server.MapPath ("/"). Was ist der Unterschied?
Antwort
Server.MapPath gibt den relativen oder virtuellen Pfad zum Zuordnen zu einem physischen Verzeichnis an.
Server.MapPath(".")
gibt das aktuelle physische Verzeichnis der Datei (zB aspx)Server.MapPath("..")
kehrt das übergeordnete VerzeichnisServer.MapPath("~")
kehrt der physikalische Pfad zur Wurzel derServer.MapPath("/")
Anwendung ausgeführt wird, gibt den physischen Pfad zum Stamm des Domänennamens zurück (entspricht nicht unbedingt dem Stamm der Anwendung)
Ein Beispiel:
Angenommen, Sie haben eine Website Anwendung hingewiesen (http://www.example.com/
) zu
C:\Inetpub\wwwroot
und installiert Ihre Shop-Anwendung (sub Web als virtuelle Verzeichnis in IIS, als Anwendung markiert) in
D:\WebApps\shop
Zum Beispiel, wenn Sie Server.MapPath()
in folgenden Anfrage nennen:
http://www.example.com/shop/products/GetProduct.aspx?id=2342
dann:
Server.MapPath(".")
kehrtD:\WebApps\shop\products
Server.MapPath("..")
kehrtD:\WebApps\shop
Server.MapPath("~")
kehrtD:\WebApps\shop
Server.MapPath("/")
kehrtC:\Inetpub\wwwroot
Server.MapPath("/shop")
kehren
Wenn Pfad beginnt entweder mit einem Schrägstrich (/
) oder Backslash (\
), kehrt die MapPath()
einen Pfad als ob Pfad ein vollständiger, Pfad virtuellen war.
Wenn Pfad nicht mit einem Schrägstrich beginnt, gibt MapPath()
einen Pfad relativ zum Verzeichnis der Anforderung zurück, die verarbeitet wird.
Hinweis: In C#, @
ist der wörtliche String-Operator, der bedeutet, dass die Zeichenfolge "wie sie ist" verwendet und nicht für Escape-Sequenzen verarbeitet werden soll.
Fußnoten
Server.MapPath(null)
undServer.MapPath("")
wird produce this effect too.
einfach auf die Antwort von @ splattne erweitern ein wenig:
MapPath(string virtualPath)
ruft folgendes:
public string MapPath(string virtualPath)
{
return this.MapPath(VirtualPath.CreateAllowNull(virtualPath));
}
MapPath(VirtualPath virtualPath)
wiederum ruft MapPath(VirtualPath virtualPath, VirtualPath baseVirtualDir, bool allowCrossAppMapping)
welche die folgendes enthält:
//...
if (virtualPath == null)
{
virtualPath = VirtualPath.Create(".");
}
//...
So Wenn Sie MapPath(null)
oder MapPath("")
anrufen, sind Sie eff ectively calling MapPath(".")
1) Server.MapPath (".") - Gibt das "aktuelle physische Verzeichnis" der Datei (z. aspx) ausgeführt wird.
Ex. Angenommen, D: \ WebApplications \ Collage \ Abteilungen
2) Server.MapPath ("..") - Liefert die "Parent Directory"
Ex. D: \ WebApplications \ Collage
3) Server.MapPath ("~") - Gibt den "Physical Pfad zur Wurzel der Applikation"
Ex. D: \ WebApplications \ Collage
4) Server.MapPath ("/") - Gibt den physischen Pfad zur Wurzel des Domain Name
Bsp. C: \ Inetpub \ wwwroot
- 1. Server.MapPath()
- 2. Server.MapPath in Ashx?
- 3. Server.MapPath jenseits des Webroot
- 4. Server.MapPath in C# classlibrary
- 5. Was ist das Servlet-Äquivalent von Server.MapPath?
- 6. Was ist der Unterschied zwischen Server.MapPath und HostingEnvironment.MapPath?
- 7. Server.MapPath in einer COM-Komponente
- 8. server.mappath resolve referenzierten Dateipfad relativ dir
- 9. Wie kann ich Server.MapPath() von global.asax verwenden?
- 10. Verwenden Sie Server.MapPath in Business Layer
- 11. Wie kann ich Server.MapPath in Klassenbibliothek Projekt
- 12. Server.MapPath nicht in Asp.Net MVC-Projekt gefunden
- 13. C#: Wie kann Server.Mappath eine Datei lesen?
- 14. Microsoft Web API: Wie machst du einen Server.MapPath?
- 15. wie Server.MapPath in asp.net Kern aus dem Inneren eines Helfer
- 16. ASP.NET Server.MapPath nicht den vollständigen Pfad einer Datei
- 17. Wieso wird durch einen Verweis auf Server.MapPath() mein HttpContext Request.Params [] beendet?
- 18. Gibt es eine Möglichkeit, Server.MapPath in einer Klasse in meiner asp.net-Anwendung zu verwenden
- 19. Server.MapPath gibt falschen Pfad, Ausnahme "Das Format des angegebenen Pfads wird nicht unterstützt", wenn auf dem IIS-Server ausgeführt wird?
- 20. Probleme bei der Verwendung von Crystal Reports in Asp.net
- 21. Bild-URL ist korrekt, aber das Bild zeigt nicht
- 22. , wie Auflösung der Größe des Bildes ändern oder reduzieren
- 23. In C#, wie überprüfen Sie, ob ein Pfad virtuell ist oder nicht?
- 24. Was ist der Unterschied zwischen:
- 25. Ist Path Traversal Vulnerabilities in meinem untenstehenden Code möglich?
- 26. Wie zeigen Sie Bilder aus einem Ordner mit Razor MVC?
- 27. Wie kann ich HttpContext verfügbar machen, um von meinen Unit Tests verwendet zu werden?
- 28. Was ist der Unterschied zwischen `==` und `ist`?
- 29. Image1.ImageUrl = .. ändert nicht das Bild auf der WEB-Seite
- 30. Pfad ist kein gültiger virtueller Pfad
Ausgezeichnet. Wir haben mit Server.Bloody.MapPath gekämpft. Danke – gbn
Sie werden besser mit 'HostingEnvironment.MapPath' umgehen, da es nicht' HttpContext' benötigt: http://stackoverflow.com/q/944219/3205 – skolima