如何获取包含在解决方案文件夹中的文件的路径

本文关键字:文件夹 解决方案 文件 路径 包含 何获取 获取 | 更新日期: 2023-09-27 18:10:28

我有一个问题,我必须得到一个xml文件的路径,我已经包含在我的解决方案。有人知道那个文件的路径吗?

我试过的是

string path = Directory.GetCurrentDirectory() + "/test.xml";

但是这并没有给我正确的文件路径。谁能告诉我找到路径的细节?

如何获取包含在解决方案文件夹中的文件的路径

试试这个…

字符串路径=应用程序。StartupPath + "'test.xml";

如果您的xml在BIN文件夹中,您可以使用该代码获取您的xml。

您需要将文件放在项目的根文件夹中。此外,尝试纠正斜杠:... + "''test.xml"

如果它在解决方案文件夹中,那么它不会在应用程序的当前目录中(取决于构建配置的正确bin文件夹),除非您确保它是Content类型并复制到构建文件夹

如果您的参数接受一个URI,您可以使用如下内容

new Uri("/<proejct or assembly name>;component/<folder path>/<filename>")

例如我的项目foo。bar有一个名为resources的文件夹其中有一个文件dummy。xml,我可以使用

new Uri("/foo.bar;component/resources/dummy.xml")

如果我是你,我会有点怀疑这个要求。从概念上讲,您的解决方案目录和解决方案通常是"构建材料",而您编译的、可部署的代码是您将提供给客户的完成的"构建"。你现在的要求就像一个房子的建造者说:"把我的锤子粘到地下室地板上的最好方法是什么?"有人可能会给你一个很好的答案,但正确地应用解决方案是一个好主意吗?

更具体地说,为什么你的运行时,可执行代码依赖于你的预构建/构建时解决方案结构?我建议您实际上可能想做的是有一个构建事件,将XML从解决方案文件夹复制到构建和部署目标可执行文件的目标目录。如果您这样做了,那么您就可以在代码中使用"CurrentDirectory"方法,而不必担心解决方案的结构。构建事件使用命令行语法,并为您的解决方案目录提供可用的"宏",因此您将有一个类似"xcopy $(SolutionDir)test.xml $(BuildDir)"的宏。

(如果您已经意识到这一点,并且您对遍历自己的解决方案结构的代码有一些特别具体的要求,我表示歉意)

这取决于文件的位置。方法Directory.GetCurrentDirectory()返回可执行文件(bin'debug)的路径

相关文章: