是否可以在App.config文件的appSettings中引用主目录?

本文关键字:appSettings 引用 主目录 文件 App config 是否 | 更新日期: 2023-09-27 18:01:40

我在Visual Studio(2010)中有这个c#项目,我想在项目的App.config文件的<appSettings>部分中引用我的主目录中的文件。也就是说,我使用以下语法:

<appSettings>
    <add key="Database" value="sqlite:///C:'Users'arvek'test.db3" />
</appSettings>

是否有可能通过变量而不是直接硬编码来引用我的主目录(C:'Users'arvek) ?F.ex: value = " sqlite:///$ HOME ' test.db3"。

是否可以在App.config文件的appSettings中引用主目录?

ConfigurationManager不会自动展开应用程序设置中的任何内容,因为它们只是自由格式的字符串,但您可以手动这样做。使用EnvironmentExpandEnvironmentVariables方法,根据当前环境展开形式为%VARIABLENAME%的变量。所以:

<appSettings>
    <add key="Database" value="sqlite:///%APPDATA%'database'test.db3" />
</appSettings>

string path = Environment.ExpandEnvironmentVariables(ConfigurationManager.AppSettings["Database"]);

"home"目录的根路径在%USERPROFILE%变量中,尽管%APPDATA%是放置您所讨论的内容的传统位置。还有%ALLUSERSPROFILE%用于系统范围的数据(尽管在Windows 7中,它实际上指向一个特殊的系统范围的数据文件夹,而不是"公共"配置文件)

我发现用这行简单的代码更容易获得应用程序的目录

string appBasePath = AppDomain.CurrentDomain.BaseDirectory;

我就是这么称呼它的