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

时间:2011-10-06 04:06:51

标签: c# c#-4.0

我有一个问题,我必须得到我已经包含在我的解决方案中的xml文件的路径。任何机构都可以如何获取该文件的路径。?

我试过的是

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

但这并没有给我正确的文件路径。任何人都可以向我提供详细信息以找到路径吗?

6 个答案:

答案 0 :(得分:1)

试试这个..

String path = Application.StartupPath +“\ test.xml”;

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

的路径

答案 3 :(得分:0)

如果它在解决方案文件夹中,那么它将不在应用程序的当前目录(正确的bin文件夹,具体取决于构建配置),除非您确保它是内容类型并被复制到构建文件夹< / p>

答案 4 :(得分:0)

如果您的参数接受URI,您可以使用类似

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

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

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

答案 5 :(得分:0)

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

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

(如果你已经意识到这一点,我很抱歉,你有一些特别要求让代码遍历自己的解决方案结构。)