Как получить текущий каталог в веб-сервисе - PullRequest
32 голосов
/ 25 октября 2008

Я использую System.IO.Directory.GetCurrentDirectory () для получения текущего каталога в моем веб-сервисе, но это не дает мне текущий каталог. Как получить текущий каталог в веб-сервисе?

Спасибо Стюарт

Ответы [ 7 ]

46 голосов
/ 25 октября 2008

В веб-сервисе вы работаете в контексте http. Таким образом,

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

даст вам ответ.

22 голосов
/ 17 мая 2010

HttpContext.Current.Server.MapPath(".") выдаст вам текущий рабочий каталог.

Но для комментария Рохана Уэста о возможном нахождении вне HttpContext было бы лучше просто позвонить:

HostingEnvironment.MapPath(".")

Подробнее здесь

20 голосов
/ 22 июля 2014

Вы можете использовать

AppDomain.CurrentDomain.BaseDirectory;

Это дает вам корневой каталог вашего приложения.

18 голосов
/ 15 июля 2011

HttpContext.Current.Server.MapPath ("~ /") отображается обратно в корень приложения или виртуального каталога.

HttpContext.Current.Server.MapPath ("~ /") <- ROOT <br /> HttpContext.Current.Server.MapPath (".") <- ТЕКУЩИЙ КАТАЛОГ <br /> HttpContext.Current.Server.MapPath ("..") <- СПРАВОЧНИК РОДИТЕЛЕЙ <br />

Все вышеперечисленное является относительным, поэтому вы можете использовать любую комбинацию для обхода дерева каталогов.

10 голосов
/ 02 августа 2011

Лучше всего использовать

HostingEnvironment.ApplicationPhysicalPath под System.Web.Hosting

для получения дополнительной информации, пожалуйста, обратитесь эту ссылку

6 голосов
/ 25 октября 2008

HttpContext.Current.Server.MapPath("~/") достанет ли вам рут приложения?

Что вполне вероятно, поскольку вы, вероятно, знаете путь оттуда.

Еще один вариант, который может быть интересен:

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

Это сборка из корня приложения, несмотря ни на что.

Без первой косой черты в качестве начала будет взят каталог, откуда вы звоните:

HttpContext.Current.Server.MapPath("Directory/") 
0 голосов
/ 24 декабря 2013

HttpContext.Current.Server.MapPath ("..") [наблюдать две (..) точки вместо (.)] Дает физический каталог виртуального каталога сайта!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...