2012-02-22 21 views
15

Estoy tratando de construir una ruta de archivo con el fin de leer un archivo XSLT, así:Obtienen el directorio actual en asp.net mvc

string path = "../_xslt/example.xslt"; 
StreamReader reader = new StreamReader(path); 

... donde estoy en un controlador (/ Controladores/ExampleController.cs), y la carpeta '/ _xslt /' está en el mismo nivel que ''/Controladores

sin embargo, el error que estoy recibiendo es:

(System.IO.DirectoryNotFoundException) no se pudo encuentre una parte de la ruta 'c: \ windows \ system32 \ _xslt \ example.xslt'.

¿Voy por esto de la manera incorrecta?

¡Gracias por cualquier ayuda!

Respuesta

23

Usted puede utilizar el método HttpServerUtility.MapPath para trazar rutas relativas para usted, en su controlador éste es fácilmente accesible a través de la ControllerContext :

string path = ControllerContext.HttpContext.Server.MapPath("~/_xslt/example.xslt"); 
... 
3

Si el controlador está presente en la raíz del directorio

String path = ControllerContext.HttpContext.Server.MapPath(@"~/_xslt/example.xslt"); 

Else

String path = ControllerContext.HttpContext.Server.MapPath(@"../_xslt/example.xslt"); 
Cuestiones relacionadas