如何在C#中识别解决方案中的文件路径



我正试图访问一个文件夹中的数据文件(xml文件),该文件夹与调用方测试代码处于不同的层次级别。我创建了一个相对路径(../../testdata.xml),使其能够理解测试代码并加载文件。然而,同一数据文件需要由另一段代码访问,该代码与测试代码不在同一层次级别。因此,它无法加载具有预期的FileNotFoundException的文件。有人能帮我定义测试数据文件的路径吗?这样,位于解决方案中不同层次的两个调用方都可以访问它?是否有一种方法可以识别解决方案文件的根路径,并使用解决方案文件位置作为参考来定义测试数据文件的路径?请帮忙。

$(SolutionDir)解决方案的目录(定义为驱动器+路径);包括尾部反斜杠"\"。

用于生成命令和特性的宏:https://msdn.microsoft.com/en-us/library/c02as0cs.aspx

我建议在配置文件中指定文件到基本目录的相对路径(ex..data/testdata.xml)。

现在,您可以使用BaseDirectory属性解析文件位置(来自任何文件),如图所示。

var filepath = AppDomain.CurrentDomain.BaseDirectory + "data/testdata.xml";  // absolute path from config.

最新更新