Xai*_*oft 1 c# .net-4.0 linq-to-xml
我有一个名为settings.xml的文件位于:
c:\solution1\solution1\data\settings.xml
现在,我正在做:
XDocument doc = XDocument.Load(@"c:\solution1\solution1\settings.xml");
Run Code Online (Sandbox Code Playgroud)
我无法想象如何用相对路径来做.
如果您的意思是相对于您的可执行文件,您可以使用
string exeLocation = System.Reflection.Assembly.GetExecutingAssembly().CodeBase
Run Code Online (Sandbox Code Playgroud)
注意经常建议的
System.Reflection.Assembly.GetExecutingAssembly().Location
Run Code Online (Sandbox Code Playgroud)
将获得程序集当前所在的路径,例如,如果正在执行卷影副本,则该路径可能不同.
您可以使用
string exeDir = System.IO.Path.GetDirectoryName(exeLocation);
Run Code Online (Sandbox Code Playgroud)
获取可执行文件的目录.
如果要查找安装位置下的数据目录中的文件,可以执行此操作
string dataFile = Path.Combine(exeDir, "data\settings.xml");
Run Code Online (Sandbox Code Playgroud)
请注意,在Windows Vista及更高版本中,默认情况下您不会对位于安装目录下的目录具有写访问权限.