首页 > 解决方案 > 如何在 App.Config 中设置相对路径?

问题描述

我正在使用 WPF C#,我正在使用 Visual Studio 2017。

就是设置appSettings的文件路径。我想在 App.Config 文件中定义一个相对路径。如果我尝试使用绝对路径,它会起作用。

这项工作:

<appSettings file="C:\Users\jordan\AppData\Roaming\Test\appfile.config">

但是,如果我尝试使用相对路径,它就不起作用。

这不起作用:

<appSettings file="${AppData}\Roaming\Test\appfile.config">

<appSettings file="~\AppData\Roaming\Test\appfile.config">

<appSettings file="~/AppData/Roaming/Test/appfile.config">

etc...

您有想法在这里设置相对路径吗?或者只是为什么我不能这样做?

谢谢

标签: c#.netwpfapp-configappsettings

解决方案


当前漫游用户的应用程序特定文件夹由枚举Environment.SpecialFolder中的一个条目定义,它是ApplicationData条目

您可以使用Environment.GetFolderPath传递枚举条目来检索与此枚举关联的路径

 string appData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

因此,在您的配置文件中,您可以简单地存储最后一部分Test\appfile.config并使用此代码

 string appData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
 string configLocation = Configuration.AppSettings["file"].ToString();
 string file = Path.Combine(appData, configLocation);

推荐阅读