【发布时间】:2013-02-15 20:23:33
【问题描述】:
我在用 C# 读取文件时遇到问题 我有两个不同的 .exe 位置(都不同)并读取相同的 .xml 文件。所以当我给出这样的路径时:
TextReader textReader = new StreamReader(@"../../../TrajectoryGen/obstacleList.xml");
它能够从一个位置(路径中使用的后面 3 个文件夹)读取,但不能从另一个位置(后面只有 2 个文件夹)读取 如何解决此问题,以便它在两个文件夹中都有效?
【问题讨论】:
-
@"../../../TrajectoryGen/obstacleList.xml"是一个,@"../../TrajectoryGen/obstacleList.xml"是另一个?那就是“你如何解决这个问题”——或者你有不同的问题? -
老兄,这是同样的问题,但不是那么容易。有两个不同的 GUI 从不同的文件夹访问完全相同的代码。所以我不能为两个 GUI 定义不同的路径对象,因为它们使用相同的路径对象。
-
听起来你有更多的架构问题。我们必须查看您的整个项目,这可能是一个太大的问题。您可能需要考虑在SE 上提出问题,询问如何组织代码以便访问动态放置的文件或其他内容。
-
是的。但问题是我无法重组代码,因为它是一个大项目的一部分。所以,我想知道是否可以使用某种对路径的解决方案引用来修复它?
-
您必须使用某种代码来读取文件夹名称并向上遍历层次结构,或者拥有一个带有绝对路径的配置文件,或者将所需的文件放在system location 中。不过,这又是架构方面的东西 - 并不是真正的good fit SO。
标签: c# relative-path streamreader filereader absolute-path