我有一个名为 settings.xml 的文件,位于:
c:\solution1\solution1\data\settings.xml
现在,我正在做:
XDocument doc = XDocument.Load(@"c:\solution1\solution1\settings.xml");
我不知道如何使用相对路径来做到这一点。
我有一个名为 settings.xml 的文件,位于:
c:\solution1\solution1\data\settings.xml
现在,我正在做:
XDocument doc = XDocument.Load(@"c:\solution1\solution1\settings.xml");
我不知道如何使用相对路径来做到这一点。
如果你的意思是相对于你的可执行文件,你可以使用
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 及更高版本下,默认情况下您将没有对位于安装目录下的目录的写入权限。
您还可以获取相对于它开始的当前目录
System.Environment.CurrentDirectory