如何在App.Config中设置相对路径?

时间:2019-02-25 17:35:37

标签: c# .net wpf app-config appsettings

我正在使用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...

您是否有想法在此处设置相对路径?还是为什么我不能做到这一点?

谢谢

1 个答案:

答案 0 :(得分:3)

当前漫游用户的特定于应用程序的文件夹由枚举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);