C# 取得程式路徑

因為工作的關係需要開始使用C#,所以就從這邊開始紀錄一些C#的使用方式吧。
(發現年紀越大,學的東西如果不筆記起來就很容易忘了啊啊啊冏)

A.取得和設置當前目錄(即該程序從中啟動的目錄)的完整路徑,這個設定會受到 Startup Directory(環境變數:起始目錄)的影響,通常像是排程或是DEBUG都會有這種設定。
string dir = System.Environment.CurrentDirectory;
結果: C:\Project\MyApplication1

B.取得啟動應用程序的執行檔案的路徑,不包括可執行檔案的名稱,通常也是程式真實位置,不受到 Startup Directory(環境變數:起始目錄)的影響。
string dir = System.Windows.Forms.Application.StartupPath;
結果: C:\Project\MyApplication1

C.取得應用程序的當前工作目錄,這個設定會受到 Startup Directory(環境變數:起始目錄)的影響,通常像是排程或是DEBUG都會有這種設定。
string dir = System.IO.Directory.GetCurrentDirectory();
結果: C:\Project\MyApplication1

D.取得當前 Thread 的當前應用程式所在的根目錄(尾部帶有\),通常也是程式真實位置,不受到 Startup Directory(環境變數:起始目錄)的影響。
string dir = System.AppDomain.CurrentDomain.BaseDirectory;
結果: C:\Project\MyApplication1\

E.取得和設置包含該程式的目錄的名稱(尾部帶有\)。
string str = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
結果: C:\Project\MyApplication1\

F.取得啟動應用程式的可執行檔案的路徑,包括可執行檔案的名稱。
string dir = System.Windows.Forms.Application.ExecutablePath;
結果: C:\Project\MyApplication1\MyApp.exe

G.取得當前執行的exe的檔案名。
string dir = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
結果: C:\Project\MyApplication1\MyApp.exe
如果在Debug情況下會出現:C:\Project\MyApplication1\MyApp.vshost.exe

H.取得當前進程的完整路徑,包含檔案名。
string dir = this.GetType().Assembly.Location;
結果: C:\Project\MyApplication1\MyApp.exe


以上就選一個適合的來用吧!

留言

這個網誌中的熱門文章

【研究】列印的條碼為什麼很難刷(掃描)

C# 使用 Process.Start 執行外部程式

統一發票列印小程式