我有一个XML文件,我正在作为XDocument流式传输。我需要能够使用反射等获取文件的完整路径(不是bin / Debug路径)(因此这将是它所使用的用户机器的路径)。
我尝试了大量不同的方式,包括:
System.Reflection.Assembly.GetCallingAssembly().Location
System.Reflectin.Assembly.GetEntryAssembly().Location
System.Reflection.GetExecutingAssembly().Location
AppDomain.CurrentDomain.BaseDirectory.
如何使用System.IO查找用户计算机上的路径到我的文件?非常惊讶我在谷歌搜索一整天都没有找到简单的答案。
::编辑::我现在发现根据应用程序是否在调试器中运行,无法“反射性地”定位路径。我唯一的选择就是做一些检测。
提前致谢!!
答案 0 :(得分:1)
我假设该文件位于可执行文件的子目录中?
您可以使用Environment类获取当前工作目录的完整路径(即运行.exe的位置)。然后,您可以将其与子目录
连接起来Environment.CurrentDirectory + @"\folder\file.xml"
http://msdn.microsoft.com/en-us/library/system.environment.aspx
希望这有帮助!
编辑:稍微阅读后发现可以很容易地更改CurrentDirectory。这里接受的答案Environment.CurrentDirectory is yielding unexpected results when running installed app提供了一种更可靠的方法。
答案 1 :(得分:1)
找到我的答案here (using path stripping and GetFullPath() )。这是一个真正的无赖,只是剥离路径的bin / debug部分。我使用了上面链接的问题的第三部分。