1

我有一个名为 settings.xml 的文件,位于:

c:\solution1\solution1\data\settings.xml

现在,我正在做:

XDocument doc = XDocument.Load(@"c:\solution1\solution1\settings.xml");

我不知道如何使用相对路径来做到这一点。

4

2 回答 2

5

如果你的意思是相对于你的可执行文件,你可以使用

string exeLocation = System.Reflection.Assembly.GetExecutingAssembly().CodeBase

注意经常建议的

System.Reflection.Assembly.GetExecutingAssembly().Location

将获得程序集当前所在的路径,这可能会有所不同,例如,如果正在执行卷影副本。

您可以使用

string exeDir = System.IO.Path.GetDirectoryName(exeLocation);

获取可执行文件的目录。

如果您想在安装位置下的数据目录中找到一个文件,您可以这样做

string dataFile = Path.Combine(exeDir, "data\settings.xml");

请注意,在 Windows Vista 及更高版本下,默认情况下您将没有对位于安装目录下的目录的写入权限。

于 2012-10-02T21:29:35.683 回答
0

您还可以获取相对于它开始的当前目录

System.Environment.CurrentDirectory
于 2012-10-02T21:31:34.293 回答