2008-10-25 4 views
27

Ich benutze System.IO.Directory.GetCurrentDirectory(), um das aktuelle Verzeichnis in meinem Web-Service zu erhalten, aber das gibt mir nicht das aktuelle Verzeichnis. Wie bekomme ich das aktuelle Verzeichnis in einem Webservice?Wie bekomme ich das aktuelle Verzeichnis in einem Web-Service

Dank Stuart

+0

Wo hosten Sie den Webservice? IIS?Verwenden Sie WCF –

Antwort

41

In einem Webservice, führen Sie in einem http-Kontext. Also,

HttpContext.Current.Server.MapPath("~/") 

wird Ihnen die Antwort geben.

+9

Dies entspricht dem Stammverzeichnis. Welche * darf nicht aktuell sein – MiloTheGreat

5

HttpContext.Current.Server.MapPath("~/") würden Sie die Wurzel der Anwendung bekommen?

Welches ist am wahrscheinlichsten, wie Sie wahrscheinlich den Weg von dort kennen.

Eine weitere Option, die von Interesse sein könnte:

HttpContext.Current.Server.MapPath("/Directory/") 

Diese aus der Wurzel der Anwendung erstellt, egal was.

Ohne den ersten Schrägstrich dieses Verzeichnis nehmen, von wo Sie als Start nennen:

HttpContext.Current.Server.MapPath("Directory/") 
21

HttpContext.Current.Server.MapPath(".") werden Sie das aktuelle Arbeitsverzeichnis.

Aber Rohan Wests Kommentar über potenziell zu sein außerhalb eines Httpcontext es wahrscheinlich nur zu nennen wäre besser:

HostingEnvironment.MapPath(".") 

See here

17

HttpContext.Current.Server.MapPath ("~/Details ") verweist zurück auf den Stamm der Anwendung oder des virtuellen Verzeichnisses.

HttpContext.Current.Server.MapPath ("~ /") < - ROOT
HttpContext.Current.Server.MapPath ("") < - CURRENT DIRECTORY
HttpContext.Current.Server.MapPath ("..") < - PARENT VERZEICHNIS

Alle oben genannten sind relativ, so können Sie jede Kombination durch den Verzeichnisbaum durchlaufen.

10

Der beste Weg

HostingEnvironment.ApplicationPhysicalPath unter System.Web.Hosting

für weitere Informationen verwendet bitte this link

0

HttpContext.Current.Server.MapPath ("..") [beobachten zwei (..) Punkte beziehen anstelle von (.)] gibt das physische Verzeichnis des virtuellen Verzeichnisses der Site an!

15

können Sie

AppDomain.CurrentDomain.BaseDirectory; 

verwenden Dieses Sie das Root-Verzeichnis Ihrer Anwendung gibt.