我正在尝试构造一个文件路径以便读取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'的一部分。
我是以错误的方式解决这个问题吗?
感谢您的帮助!
答案 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
}