我有一个名为settings.xml的文件位于:
c:\solution1\solution1\data\settings.xml
现在,我正在做:
XDocument doc = XDocument.Load(@"c:\solution1\solution1\settings.xml");
我无法想象如何用相对路径来做这件事。
答案 0 :(得分:5)
如果您的意思是相对于您的可执行文件,则可以使用
string exeLocation = System.Reflection.Assembly.GetExecutingAssembly().CodeBase
注意经常提出的
System.Reflection.Assembly.GetExecutingAssembly().Location
将获得程序集当前所在的路径,它可以是不同的,例如如果正在执行卷影副本。
您可以使用
string exeDir = System.IO.Path.GetDirectoryName(exeLocation);
获取可执行文件的目录。
如果要查找安装位置下 data 目录中的文件,可以
string dataFile = Path.Combine(exeDir, "data\settings.xml");
请注意,在Windows Vista及更高版本中,默认情况下,您不会将写访问权限发送到安装目录下的目录。
答案 1 :(得分:0)
您还可以相对于从
开始的当前目录System.Environment.CurrentDirectory