c# - 获取文件的相对路径?

标签 c# .net-4.0 linq-to-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);

获取可执行文件的目录。

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

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

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

关于c# - 获取文件的相对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12698599/

相关文章:

wcf - Windows Workflow 4 中的人工事件支持

c# - LINQ 到 XML : How to select the next element

c# - 我如何对 List<int> 进行分组并返回 List<int>

c# - EF Core - MERGE 语句与 FOREIGN KEY 约束冲突

c#类强制至少一种关系

c# - 将只有几列的数据复制到另一个数据表中

c# - XML Writer 将结果存储到字符串

c# - 将 XAttribute 插入到指定位置的现有 XElement

javascript - 在 JS 中设置值,但代码隐藏没有获得更新的值。 ASP网

c# - 如何在不隐藏控件的情况下调整窗口大小