string str1 =Process.GetCurrentProcess().MainModule.FileName;//可獲得目前執行的exe的檔案名。 string str2=Environment.CurrentDirectory;//擷取和設定目前目錄(即該程序從中啟動的目錄)的完全限定路徑。 //備注 按照定義,如果該程序在本地或網絡驅動器的根目錄中啟動,則此屬性的值為驅動器名稱後跟一個尾部反斜杠(如“C:/”)。如果該程序在子目錄中啟 動,則此屬性的值為不帶尾部反斜杠的驅動器和子目錄路徑(如“C:/mySubDirectory”)。 string str3=Directory.GetCurrentDirectory();//擷取應用程式的目前工作目錄。 string str4=AppDomain.CurrentDomain.BaseDirectory;//擷取基目錄,它由程式集沖突解決程式用來探測程式集。 string str5=Application.StartupPath;//擷取啟動了應用程式的可執行檔案的路徑,不包括可執行檔案的名稱。 string str6=Application.ExecutablePath;//擷取啟動了應用程式的可執行檔案的路徑,包括可執行檔案的名稱。 string str7=AppDomain.CurrentDomain.SetupInformation.ApplicationBase;//擷取或設定包含該應用程式的目錄的名稱。 1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName 擷取子產品的完整路徑。 2. System.Environment.CurrentDirectory 擷取和設定目前目錄(該程序從中啟動的目錄)的完全限定目錄。 3. System.IO.Directory.GetCurrentDirectory() 擷取應用程式的目前工作目錄。這個不一定是程式從中啟動的目錄啊,有可能程式放在C:/www裡,這個函數有可能傳回C:/Documents and Settings/ZYB/,或者C:/Program Files/Adobe/,有時不一定傳回什麼東東,我也搞不懂了。 4. System.AppDomain.CurrentDomain.BaseDirectory 擷取程式的基目錄。 5. System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase 擷取和設定包括該應用程式的目錄的名稱。 6. System.Windows.Forms.Application.StartupPath 擷取啟動了應用程式的可執行檔案的路徑。效果和2、5一樣。隻是5傳回的字元串後面多了一個"/"而已 7. System.Windows.Forms.Application.ExecutablePath 擷取啟動了應用程式的可執行檔案的路徑及檔案名,效果和1一樣。 對于Windows程式 和Web 應用程式來說,他們運作的路徑是不一樣的,是以關鍵是判斷目前運作的程式是哪種程式.于是我們可以使用如下的代碼 string path = ""; if (System.Environment.CurrentDirectory == appDomain.CurrentDomain.BaseDirectory)//Windows應用程式則相等 { path = AppDomain.CurrentDomain.BaseDirectory; } else path = AppDomain.CurrentDomain.BaseDirectory + "Bin/"; 這樣如果我們寫了一個類庫,類庫中用到了Assembly.LoadFrom,由于是通用類庫,是以可能用到Windows程式中也可能用到Web中,那麼用上面的代碼就很友善了. |