.NET下获取应用程序目录的一些方法
今天在Console Application下搞了一个小功能,期间需要获取当前应用程序的根目录,试了很多方式,都不能直接获取到,没有像Server.MapPath()这类的方法来方便地使用。
下面列举出一些获取一般目录的方法:
// 获取程序的基目录,结尾包含\ var a = AppDomain.CurrentDomain.BaseDirectory; Console.WriteLine(a); // 获取和设置包括该应用程序的目录的名称,与上一个一样 var b = AppDomain.CurrentDomain.SetupInformation.ApplicationBase; Console.WriteLine(b); // 获取启动了应用程序的可执行文件的路径及文件名 var c = Application.ExecutablePath; Console.WriteLine(c); // 获取模块的完整路径,与上一个一样 var d = Process.GetCurrentProcess().MainModule.FileName; Console.WriteLine(d); // 获取和设置当前目录(该进程从中启动的目录)的完全限定目录 var e = Environment.CurrentDirectory; Console.WriteLine(e); // 获取应用程序的当前工作目录 var f = Directory.GetCurrentDirectory(); Console.WriteLine(f); // 获取启动了应用程序的可执行文件的路径 var g = Application.StartupPath; Console.WriteLine(g);
以上的方法获取的都是\bin\Debug之类的目录。
如果要获取根目录,则可使用Directory下的方法:
1 //获取应用程序根目录 2 var p = Directory.GetParent(Environment.CurrentDirectory).Parent.FullName; 3 Console.WriteLine(p);
我还没有找到一个更简单、方便的方法来获取根目录,园子里有知道的,可以讲下,谢了!
虽然这没啥深度,但做个记录,可方便大家查询……