今天在Console Application下搞了一個小功能,期間需要獲取當前應用程序的根目錄,試了很多方式,都不能直接獲取到,沒有像Server.MapPath()這類的方法來方便地使用。
下面列舉出一些獲取一般目錄的方法:
1 // 獲取程序的基目錄,結尾包含\
2 var a = AppDomain.CurrentDomain.BaseDirectory;
3 Console.WriteLine(a);
4 // 獲取和設置包括該應用程序的目錄的名稱,與上一個一樣
5 var b = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
6 Console.WriteLine(b);
7
8 // 獲取啟動了應用程序的可執行文件的路徑及文件名
9 var c = Application.ExecutablePath;
10 Console.WriteLine(c);
11 // 獲取模塊的完整路徑,與上一個一樣
12 var d = Process.GetCurrentProcess().MainModule.FileName;
13 Console.WriteLine(d);
14
15 // 獲取和設置當前目錄(該進程從中啟動的目錄)的完全限定目錄
16 var e = Environment.CurrentDirectory;
17 Console.WriteLine(e);
18 // 獲取應用程序的當前工作目錄
19 var f = Directory.GetCurrentDirectory();
20 Console.WriteLine(f);
21 // 獲取啟動了應用程序的可執行文件的路徑
22 var g = Application.StartupPath;
23 Console.WriteLine(g);
以上的方法獲取的都是\bin\Debug之類的目錄。
如果要獲取根目錄,則可使用Directory下的方法:
1 //獲取應用程序根目錄
2 var p = Directory.GetParent(Environment.CurrentDirectory).Parent.FullName;
3 Console.WriteLine(p);
我還沒有找到一個更簡單、方便的方法來獲取根目錄,園子里有知道的,可以講下,謝了!
雖然這沒啥深度,但做個記錄,可方便大家查詢……