我需要访问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文件夹附近。
如果没有在别处定义我的目录,有没有办法可以做到这一点?我真的想要这样做而不将我的文件路径硬编码到我的项目中。
答案 0 :(得分:3)
查找属于ASP.NET应用程序(或ASP.NET MVC)的文件的常用方法是使用Server.MapPath("~/folder/somefile.txt")
,它将自动转换为{{1}的绝对路径是网站的根。无论您在ASP.NET应用程序中引用哪些程序集,或者它们都将在~
文件夹中引用它们。