2009-11-16 13 views
13

Hallo Ich entwickle eine ASP.net Webanwendung. Ich muss den aktuellen Standort (physisch) der Website (oder das Verzeichnis bin, das die Assemblys enthält) finden.ASP .net aktueller physischer Standort

Ich habe versucht, mit Directory.GetCurrentDirectory() und das ASP.NET temporäre Verzeichnis zurückgibt.

ich sind wirklich nicht mag die Idee, eine Anwendung für den absoluten Pfad in meiner Konfigurationsdatei Einstellung (eww!)

Jede Hilfe sehr geschätzt werden würde! :)

Fazit:

ich einigen Kontext gegeben haben sollte, warum ich den physischen Dateipfad möchte. Danke Jungs für Ihre prompten Antworten auf die Frage :)

Ich benutze XSL-FO für .net (die FO.net Bibliothek), um ein PDF zu generieren. Einbetten von Bildern in FO erfordert einen absoluten Pfad angegeben werden:

<fo:external-graphic src="C:\MyWebsite\images\image1.jpg" /> 

Was ich tun musste, um das aktuelle Verzeichnis auf die Website (oder sind-Verzeichnis) festgelegt wurde, die die XSL-FO-Renderer erlauben würde, zu wissen, wo man finde das Bild.

Antwort

33

Sie benötigen System.Web.HttpRuntime.BinDirectory (physischen Pfad zum sind Ordner) und System.Web.HttpRuntime.AppDomainAppPath (physischen Pfad zu den obersten Ebene ASP.NET-Anwendungsordnern).

+0

Dank Gonzalo, das funktioniert gut in meiner Situation. :) – Russell

+0

Ja, danke für das Zeigen dieser beiden Referenzen :) – Chau

5

Es hängt davon ab, was genau Sie mit dem Pfad tun möchten, aber der übliche Ansatz ist Server.MapPath(). Zum Beispiel:

YourControl.src = Server.MapPath("~/images/image1.jpg"); 

Das wird den physischen Pfad für die angegebene Datei zurückgeben.

+1

Hallo Rick, danke MapPath ist eine praktische Methode, die du beachten solltest, aber es passt nicht wirklich zu meiner Situation. Ich bin im Begriff, meine Frage mit einigen weiteren Details zu aktualisieren, warum sollte ich einen Kontext geben, Entschuldigung, ich hätte das zuerst tun sollen. Danke für Ihre Hilfe :) – Russell