編程時,由於需要,我們常將一些文件放在解決方案下的某個目錄中,為了獲取到該目錄下文件,在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://www.cnblogs.com/bq-blog/archive/2012/09/01/2666394.html