获取asp.net mvc中的当前目录

时间:2012-02-22 11:07:03

标签: asp.net-mvc-3

我正在尝试构造一个文件路径以便读取XSLT文件,如下所示:

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

...我在控制器(/Controllers/ExampleController.cs)中,'/ _xslt /'文件夹与'/ Controllers'处于同一级别

然而,我得到的错误是:

(System.IO.DirectoryNotFoundException) 找不到路径'c:\ windows \ system32 \ _xslt \ example.xslt'的一部分。

我是以错误的方式解决这个问题吗?

感谢您的帮助!

3 个答案:

答案 0 :(得分:26)

您可以使用HttpServerUtility.MapPath方法为您绘制任何相对路径,在您的控制器中可通过ControllerContext轻松访问:

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

答案 1 :(得分:3)

如果控制器存在于目录根目录

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

否则

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

答案 2 :(得分:0)

string TestX()
{
    string path = AppDomain.CurrentDomain.BaseDirectory; // You get main rott
    string dirc = ""; // just var for use
    string[] pathes = Directory.GetDirectories(path); // get collection

    foreach (string str in pathes)
    {
        if (str.Contains("NameYRDirectory")) // paste yr directory
        {
            dirc = str;
        }
    }

    return dirc; // after use Method and modify as you like
}