先看下这个获取路径的代码:System.AppDomain.CurrentDomain.BaseDirectory。
解释:获取基目录,它由程序集冲突解决程序用来探测程序集。
前端时间,由于负责提供接口,使用WCF编写服务,涉及到xml的读取,使用了System.AppDomain.CurrentDomain.BaseDirectory来获取路径,获得的是项目的基目录。
后来由于项目组人手不够,我又额外负责了客户端的部分模块(使用WPF开发),要读取rtf文件。我在项目的基目录下建立一个文件夹,用来存放rtf文件,却无法读取,断点调试之后,找到路径“E:\Users\Administrator\Documents\Visual Studio 2010\Projects\AdapterTest\AdapterTestWindows\bin\Debug\”。这边路径还是有System.AppDomain.CurrentDomain.BaseDirectory获取。
过后想想,这边的基目录,估计不是指项目的基目录,而是可执行文件的基目录,于是有调试了下WCF中的路径“F:\STSubject3\WcfService\”,这里没有“bin\debug”,就是在项目的基目录下。
上面是我所碰到的问题,和一些个人看法,如果有错误,请帮忙指出来。
后上网找了些.Net获取路径的方法
1. Application.StartupPath——获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。
2. Environment.CurrentDirectory——获取和设置当前目录(即该进程从中启动的目录)的完全限定路径,只是“当前”目录,不一定是exe文件所在的目录。在用FileOpenDialog选择一个文件以后这个目录就跟着发生改变了。
3. Application.ExecutablePath——获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。