【问题标题】:Environment.CurrentDirectory renders Wrong PathEnvironment.CurrentDirectory 呈现错误的路径
【发布时间】:2010-07-18 17:48:18
【问题描述】:

我需要访问我的 ASP.NET MVC 项目中的某个文件。在我的同一个项目中有两个文件夹,我们称它们为 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 文件夹。

有没有一种方法可以做到这一点,而无需在其他地方定义我的目录?我真的很想这样做,而不会将我的文件路径硬编码到我的项目中。

【问题讨论】:

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


    【解决方案1】:

    查找属于 ASP.NET 应用程序(或 ASP.NET MVC)一部分的文件的常用方法是使用 Server.MapPath("~/folder/somefile.txt"),它会自动转换为绝对路径,其中 ~ 是网站的根目录。无论您在 ASP.NET 应用程序中引用什么程序集,或者它们最终都将位于 bin 文件夹中的位置。

    【讨论】:

    • 我的应用似乎没有使用 Server.MapPath。有没有我需要添加到我的班级的 using 语句?
    • Server.MapPath 不像 App_Start() 那样一直可用
    • 是的,它不可用。在这些情况下,您可以使用 HostingEnvironment.MapPath
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 2019-02-02
    • 1970-01-01
    相关资源
    最近更新 更多