Environment.CurrentDirectory呈现错误的路径

时间:2010-07-18 17:48:19

标签: asp.net-mvc active-directory directory environment

我需要访问ASP.NET MVC项目中的某个文件。在我的同一个Project中有两个文件夹,我们称之为Main和Reference。

从我的Main,我从Reference.csproj文件调用一个类。从那里,我需要访问我的TargetFile,它也存在于Reference文件夹中。

当我使用AppDomain.CurrentDomain.BaseDirectory时,我会C:\Project\Main获得C:\Project\Reference

所以我认为我可以使用Environment.CurrentDirectory,希望将我指向Reference文件夹而不是Main,但不幸的是它会输出C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE。我也试过了Directory.GetCurrentDirectory(),但我得到了相同的结果。

我需要Environment.CurrentDirectory给我C:\Project\Reference。我认为它应该给我Reference文件夹而不是Main文件夹,因为它是从Reference内部调用的,但是现在它甚至不在我的Project文件夹附近。

如果没有在别处定义我的目录,有没有办法可以做到这一点?我真的想要这样做而不将我的文件路径硬编码到我的项目中。

1 个答案:

答案 0 :(得分:3)

查找属于ASP.NET应用程序(或ASP.NET MVC)的文件的常用方法是使用Server.MapPath("~/folder/somefile.txt"),它将自动转换为{{1}的绝对路径是网站的根。无论您在ASP.NET应用程序中引用哪些程序集,或者它们都将在~文件夹中引用它们。