Подтвердить что ты не робот

Как получить текущий каталог в веб-службе

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

HostingEnvironment.MapPath(".")

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

Ответ 3

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

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

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

Ответ 4

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

AppDomain.CurrentDomain.BaseDirectory;

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

Ответ 5

Лучший способ использования

HostingEnvironment.ApplicationPhysicalPath в System.Web.Hosting

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

Ответ 6

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

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

Другая возможность, которая может представлять интерес:

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

Это происходит из корня приложения независимо от того, что.

Без первой косой черты это займет каталог, из которого вы вызываете начало:

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

Ответ 7

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