编程时,由于需要,我们常将一些文件放在解决方案下的某个目录中,为了获取到该目录下文件,在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放到了GuidForm\data\目录下,该如何获取呢? 可以这样:
using System.IO;
//string dbstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + @"\data\PB_COMMONDICS.mdb";
//string dbstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"E:\Projects\GuidForm\GuidForm\PB_COMMONDICS.mdb";
string dbstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName + @"\data\PB_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 |