C#下获取当前解决方案的路径

编程时,由于需要,我们常将一些文件放在解决方案下的某个目录中,为了获取到该目录下文件,在C#中,我们常用的方法如网上所见,基本获得的是debug目录

取得WinForm应用程序的目录方法
     1、Environment.CurrentDirectory.ToString();//获取或设置当前工作目录的完全限定路径
     2、Application.StartupPath.ToString();//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称
     3、Directory.GetCurrentDirectory();//获取应用程序的当前工作目录
     4、AppDomain.CurrentDomain.BaseDirectory;//获取基目录,它由程序集冲突解决程序用来探测程序集
     5、AppDomain.CurrentDomain.SetupInformation.ApplicationBase;//获取或设置包含该应用程序的目录的名称
其中:以下两个方法可以获取执行文件名称
     1、Process.GetCurrentProcess().MainModule.FileName;//可获得当前执行的exe的文件名。
     2、Application.ExecutablePath;//获取启动了应用程序的可执行文件的路径,包括可执行文件的名称
     3、System.IO.Path类中有一些获取路径的方法,可以在控制台程序或者WinForm中根据相对路径来获取绝对路径
=====================================================================================================================
上图是一个解决方案(GuidForm)的目录情况,之上提到的方法获得只是"debug"或者"debug",我的数据PB_COMMONDICS.mdb放到了GuidFormdata目录下,该如何获取呢?
可以这样:
using System.IO;

//string dbstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + @"dataPB_COMMONDICS.mdb";
//string dbstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"E:ProjectsGuidFormGuidFormPB_COMMONDICS.mdb"; 

string dbstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName + @"dataPB_COMMONDICS.mdb";


  

没错,很简单,就是用 Parent属性;不过应该注意的是这种方法适合在调试解决方案文件时使用,如果.exe文件拷到了其他位置,这种方法就不行了。

http://stackoverflow.com/questions/19001423/getting-path-of-a-to-the-parent-folder-of-the-solution-file-c-sharp

http://www.cnblogs.com/bq-blog/archive/2012/09/01/2666394.html

原文地址:https://www.cnblogs.com/5igis/p/5IGIS10555.html