Ich versuche, den absoluten Pfad bestimmter Dateien in einer C # -Klasse zu ermitteln. Server.MapPath
funktioniert natürlich hervorragend für ASPX und ihre Code-Behind-Seiten, aber das existiert nicht in einer anderen Klassendatei. Ich habe es versucht HostingEnvironment.MapPath()
, aber das beschwert sich, dass der relative virtuelle Pfad nicht erlaubt ist. Irgendwelche Gedanken?
System.Web
ist bereits importiert.
Sie können auch verwenden:
wenn
ist nicht zugänglich
quelle
Können Sie nicht einfach einen Verweis auf hinzufügen
System.Web
und dann verwendenServer.MapPath
?Bearbeiten: Heutzutage würde ich empfehlen, die
HostingEnvironment.MapPath
Methode zu verwenden :Es ist eine statische Methode in
System.Web
Assembly, die einen virtuellen Pfad einem physischen Pfad auf dem Server zuordnet. Es ist kein Verweis auf erforderlichHttpContext
.quelle
WENN die Datei, die Sie abrufen möchten, der Assembly-Speicherort für einen Typ ist. Wenn sich die Dateien jedoch relativ zum Assembly-Speicherort befinden, können Sie diesen mit dem
System.IO
Namespace verwenden, um den genauen Pfad der Datei abzurufen.quelle
Ich benutze das auch:
quelle
Nun, wenn Sie die Methode aus dem Codebehind aufrufen
zum Beispiel :
Auf diese Weise ist Ihr Code zu einfach und mit einer Methode können Sie für jeden Aufruf mehrere Pfade verwenden :)
quelle
Dieser hat mir geholfen
quelle
Unabhängig davon, ob Sie im Kontext von ASP.NET ausgeführt werden oder nicht, sollten Sie HostingEnvironment.ApplicationPhysicalPath verwenden können
quelle
Die Datei server.mappath ("") funktioniert auf der aspx-Seite. Wenn Sie den absoluten Pfad aus einer Klassendatei abrufen möchten, müssen Sie Folgendes verwenden:
quelle