web-dev-qa-db-fra.com

Comment obtenir le répertoire actuel dans un service Web

J'utilise System.IO.Directory.GetCurrentDirectory () pour obtenir le répertoire actuel dans mon service Web, mais cela ne me donne pas le répertoire actuel. Comment obtenir le répertoire actuel dans un service Web?

Merci Stuart 

32
user23149

Dans un service Web, vous utilisez un contexte http. Alors,

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

va vous donner la réponse.

46
driis

HttpContext.Current.Server.MapPath(".") vous donnera le répertoire de travail actuel. 

Mais pour répondre au commentaire de Rohan West sur le fait qu’il pourrait être en dehors d’un HttpContext, il serait probablement préférable d’appeler:

HostingEnvironment.MapPath(".")

Voir détails ici

22
felickz

Vous pouvez utiliser 

AppDomain.CurrentDomain.BaseDirectory;

Cela vous donne le répertoire racine de votre application.

19
user3866085

HttpContext.Current.Server.MapPath ("~ /") est renvoyé à la racine de l'application ou du répertoire virtuel.

HttpContext.Current.Server.MapPath ("~ /") <- ROOT
HttpContext.Current.Server.MapPath (".") <- CURRENT DIRECTORY
HttpContext.Current.Server.MapPath ("..") <- REPERTOIRE DES PARENTS

Tout ce qui précède est relatif, vous pouvez donc utiliser n'importe quelle combinaison pour parcourir l'arborescence.

18
MiloTheGreat

Le meilleur moyen est d'utiliser 

HostingEnvironment.ApplicationPhysicalPath sous System.Web.Hosting

pour plus d'informations s'il vous plaît se référer ce lien

10
Damith

HttpContext.Current.Server.MapPath("~/") vous donnerait la racine de l'application?

Ce qui est probablement le plus probable étant donné que vous connaissez le chemin à partir de là. 

Une autre option qui pourrait être intéressante:

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

Cela repose sur la racine de l'application, peu importe quoi.

Sans la première barre oblique, le répertoire à partir duquel vous appelez commence:

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

HttpContext.Current.Server.MapPath ("..") [observez deux (..) points au lieu de (.)] Donne le répertoire physique du répertoire virtuel du site!

0
HydPhani