如何获取ASP.NET应用程序的根文件夹

时间:2011-05-06 07:50:03

标签: c# asp.net

我正在尝试获取应用程序的根文件夹。我使用了以下代码,但这给了bin文件夹,但我需要的是应用程序的根文件夹。有可能得到这个吗?

// This is the full directory and exe name
String fullAppName = Assembly.GetExecutingAssembly().GetName().CodeBase;

// This strips off the exe name
String fullAppPath = Path.GetDirectoryName(fullAppName);

4 个答案:

答案 0 :(得分:11)

您的exe所在的位置是应用程序的根目录。

您可以使用string appPath = Path.GetDirectoryName(Application.ExecutablePath);获取应用程序路径。

如果你想找到解决方案所在的文件夹,我建议从exe位置开始,然后沿着目录树向上走,直到找到包含.sln文件的文件夹。不太清楚你为什么要这样做。

编辑:刚想通你正在创建一个asp.net网站。在这种情况下,您应该可以使用下面的(找到here):

public static string MappedApplicationPath
{
   get
   {
      string APP_PATH = System.Web.HttpContext.Current.Request.ApplicationPath.ToLower();
      if(APP_PATH == "/")      //a site
         APP_PATH = "/";
      else if(!APP_PATH.EndsWith(@"/")) //a virtual
         APP_PATH += @"/";

      string it = System.Web.HttpContext.Current.Server.MapPath(APP_PATH);
      if(!it.EndsWith(@"\"))
         it += @"\";
      return it;
   }
}

答案 1 :(得分:1)

您的程序对其开发环境一无所知或链接,因此除了您告诉他之外,没有其他方法可以知道解决方案目录。

转到parent-parente目录,就像其他人建议的那样,或者将其作为参数传递给可执行文件,或者检查this SO post如何在C#中获取解决方案目录)有很好的方法来做到这一点。

答案 2 :(得分:0)

如果不是执行exe文件的文件夹,那么'root'文件夹是什么?它可能是任何东西!
您可能希望使用Directory.Parent向上导航树,但您必须为此专门编写代码

答案 3 :(得分:0)

如果您尝试修改解决方案文件夹,则创建构建脚本比运行时应用程序更有意义。通过这些脚本,您可以轻松访问解决方案结构。

http://visualstudiohacks.com/general/customize-your-project-build-process/