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
Dans un service Web, vous utilisez un contexte http. Alors,
HttpContext.Current.Server.MapPath("~/")
va vous donner la réponse.
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
Vous pouvez utiliser
AppDomain.CurrentDomain.BaseDirectory;
Cela vous donne le répertoire racine de votre application.
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.
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
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/")
HttpContext.Current.Server.MapPath ("..") [observez deux (..) points au lieu de (.)] Donne le répertoire physique du répertoire virtuel du site!