项目运行时路径
- Main()
Console.WriteLine(Environment.CurrentDirectory);
Console.WriteLine(AppDomain.CurrentDomain.BaseDirectory);
Console.WriteLine(System.Threading.Thread.GetDomain().BaseDirectory);
string appPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName);
Console.WriteLine(appPath);
Console.ReadKey();
结果如下:
d:\我的文档\visual studio 2013\Projects\XmlTest\XmlTest\bin\Release
d:\我的文档\visual studio 2013\Projects\XmlTest\XmlTest\bin\Release\
d:\我的文档\visual studio 2013\Projects\XmlTest\XmlTest\bin\Release\
d:\我的文档\visual studio 2013\Projects\XmlTest\XmlTest\bin\Release
但是这些路径有一个缺点。那就是,他总是以 EXE
所在的路径为准。如果我想拿到项目本身的根路径,怎么办呢?
项目本身根路径
其实这个问题,我查了没有查到。但是考虑到 Release/Debug
两种模式下,项目的根路径都是当前路径的父类的父类。
所以下面的方法,也可以实现:
//1.当前目录的上级目录
string fullPathPath = Path.GetFullPath("../");
Console.WriteLine(fullPathPath);
//2. 当前目录的上级的上级目录
fullPathPath = Path.GetFullPath("../../");
Console.WriteLine(fullPathPath);
结果如下:
d:\我的文档\visual studio 2013\Projects\XmlTest\XmlTest\bin\
d:\我的文档\visual studio 2013\Projects\XmlTest\XmlTest\