0

我在我的项目文件夹之外有一个 XML 文件,我想从我的代码中访问它,以便在我将路径相对于项目目录的任何机器上执行代码。

举个例子,我的当前目录在文件夹 A 中,而我要访问的文件在文件夹 B 中 A 旁边。

4

1 回答 1

4

如果 XML 文件始终在您的应用程序文件夹中,您可以使用。

环境.当前目录

工作路径不一定是可执行文件所在的位置。为确保您可以使用取自MSDN的以下代码。

string path;
path = System.IO.Path.GetDirectoryName( 
      System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase );

否则,如果它是 Microsoft 特殊文件夹的一部分,例如 .eg MyDocuments,您可以使用。

Environment.SpecialFolder.MyDocuments

你会像这样使用它。

Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
                                           "myfile.xml")

输出将是当前用户“我的文档”文件夹中 myfile.xml 的路径。就我而言,它会给我C:\Users\eandersson\Documents\myfile.xml.

Path.Combine在这里非常有用,因为它允许我们将多个磁盘路径合并为一个。

编辑评论要求的其他信息。

我认为最好的方法是使用Directory.GetParent

Directory.GetParent(Environment.CurrentDirectory).FullName

并做这样的事情。

Path.Combine(Directory.GetParent(Environment.CurrentDirectory).FullName, "PathB", "myfile.xml")

这将在与您的项目文件夹相同的位置查找 PathB。

C:\MyProjects\PathA\MyExecutable.exe
C:\MyProjects\PathB\myfile.xml

假设您MyExecutable.exe从该位置运行。上面的代码应该自动返回 PathB 内的第二个位置和文件myfile.xml

于 2013-02-10T11:15:30.387 回答