今天在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);
我还没有找到一个更简单、方便的方法来获取根目录,园子里有知道的,可以讲下,谢了!
虽然这没啥深度,但做个记录,可方便大家查询……