ruta - startuppath c# asp net
¿Cómo obtengo el directorio actual en un servicio web? (7)
En un servicio web, se está ejecutando en un contexto http. Asi que,
HttpContext.Current.Server.MapPath("~/")
te dará la respuesta.
Estoy usando System.IO.Directory.GetCurrentDirectory () para obtener el directorio actual en mi servicio web, pero eso no me da el directorio actual. ¿Cómo obtengo el directorio actual en un servicio web?
Gracias Stuart
HttpContext.Current.Server.MapPath ("..") [observe dos (..) puntos en lugar de (.)] Da el directorio físico del directorio virtual del sitio!
HttpContext.Current.Server.MapPath ("~ /") vuelve a la raíz de la aplicación o directorio virtual.
HttpContext.Current.Server.MapPath ("~ /") <- ROOT
HttpContext.Current.Server.MapPath (".") <- DIRECTORIO ACTUAL
HttpContext.Current.Server.MapPath ("..") <- DIRECTORIO DE PADRES
Todo lo anterior es relativo, por lo que puede cualquier combinación para recorrer el árbol de directorios.
La mejor manera es usar
HostingEnvironment.ApplicationPhysicalPath
en System.Web.Hosting
para más información, consulte este enlace
Puedes usar
AppDomain.CurrentDomain.BaseDirectory;
Esto le proporciona el directorio raíz de su aplicación.
HttpContext.Current.Server.MapPath(".")
Le dará el directorio de trabajo actual.
Pero para el comentario de Rohan West sobre el potencial de estar fuera de un HttpContext, probablemente sería mejor llamar:
HostingEnvironment.MapPath(".")
Ver detalles here
HttpContext.Current.Server.MapPath("~/")
daría la raíz de la aplicación?
Lo cual es bastante probable ya que probablemente conozcas el camino desde allí.
Otra opción que podría ser de interés:
HttpContext.Current.Server.MapPath("/Directory/")
Esto se basa desde la raíz de la aplicación pase lo que pase.
Sin la primera barra, tomará el directorio desde el que llama como inicio:
HttpContext.Current.Server.MapPath("Directory/")