当前位置: 代码迷 >> .NET Framework >> 获取wpf工程的源目录
  详细解决方案

获取wpf工程的源目录

热度:3769   发布时间:2013-02-25 00:00:00.0
获取wpf工程的根目录?
使用
AppDomain.CurrentDomain.BaseDirectory = "****\\visual studio 2012\\Projects\\WpfApplication1\\WpfApplication1\\bin\\Debug\\"

其实我只想要
****\visual studio 2012\Projects\WpfApplication1\WpfApplication1\NewFolder

想要获取更目录,然后接着找到NewFolder文件夹。。
但是AppDomain.CurrentDomain.BaseDirectory得到了debug目录,有没有那个方法直接得到根目录?
谢谢啦
wpf 获取根目录

------解决方案--------------------------------------------------------
一般获取根目录的方法都是获取执行文件所在路径,因为执行文件在bin下面,所以获取了bin的路径,直接获取你要去的那个路径我绝的不太可能。
------解决方案--------------------------------------------------------
是的,这种方法获取到的默认就是bin\debug下可执行exe文件的路径

你可以获取到该路径后,然后从debug目录往上截取两级文件夹就是你项目的根目录了

string path = AppDomain.CurrentDomain.BaseDirectory;
string rootpath = path.Substring(0, path.LastIndexOf("\\"));
rootpath = rootpath.Substring(0, rootpath.LastIndexOf("\\"));
------解决方案--------------------------------------------------------
所有路径都应该相对 exe 的路径来设计的。

所以只要你的 NewFolder 相对于 exe 来说保持正确的相对路径,就可以算出。

另外一种方式是记录 NewFolder 的绝对路径。

bin\debug 路径不是固定的。比如你用 release 模式编译,会生成到 bin\release 下。

如果用户安装,这个路径又可能是自由选择的。
------解决方案--------------------------------------------------------
还有一种方式,是使用 windows 提供的特殊路径

比如 ApplicationData 这可以用 Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) 
获得。在这个目录下创建的目录,都可以通过底层提供的API来获取。
------解决方案--------------------------------------------------------
你可以用 ..\定位到上一层目录。..\xxx代表xxx目录是程序所在目录的平级目录。你还可以用..\..\返回上上级目录,等等。

ls的方法也很好,另外可以通过环境变量定位目录。
  相关解决方案