我正在尝试获取应用程序的根文件夹。我使用了以下代码,但这给了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);
答案 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/