c# - 如何在 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...
您有想法在这里设置相对路径吗?或者只是为什么我不能这样做?
谢谢
解决方案
当前漫游用户的应用程序特定文件夹由枚举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);
推荐阅读
- java - 本机库中发生错误时Java退出
- javascript - 尝试从“可观察的链”中获得可观察的错误
- git - git merge 覆盖所有以前的更改
- python - 如何使用“for”循环通过搁置保存/加载数据?
- php - PDO/mysqli 查询不返回与带有正则表达式的 mysql cli 相同的行
- javascript - 在这个 javascript 示例中,如何创建一个可以使用不同参数调用的通用函数?
- java - 类型不匹配,预期 util.List[Nothing] 从 java 到 scala
- oracle - 在 Where 子句、脚本中使用变量
- python - 如何计算损坏的csv每行中的字段数
- regex - 如何在scala中匹配包含加号(+)的字符串?