获取文件的相对路径?(Getting relative path of file?)

2019-09-30 05:12发布

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

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

现在,我做的:

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

我想不出如何使用相对路径做。

Answer 1:

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

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和更高版本,你不会有默认的写访问位于你的安装目录下的目录。



Answer 2:

您也可以相对于它从开始的当前目录

System.Environment.CurrentDirectory


文章来源: Getting relative path of file?