我在 Visual Studio (2010) 中有这个 C# 项目,我想在 <appSettings>
中引用我的主目录中的一个文件。项目的 App.config 文件的一部分。也就是说,我使用这种语法:
<appSettings>
<add key="Database" value="sqlite:///C:\Users\arvek\test.db3" />
</appSettings>
是否可以通过变量而不是直接硬编码来引用我的主目录 (C:\Users\arvek)? F.ex.: value="sqlite:///$HOME\test.db3".
最佳答案
ConfigurationManager
不会自动展开应用设置中的任何内容,因为它们只是自由格式的字符串,但您可以手动展开。使用Environment
的ExpandEnvironmentVariables
方法,会根据当前环境展开%VARIABLENAME%
形式的变量。所以:
<appSettings>
<add key="Database" value="sqlite:///%APPDATA%\database\test.db3" />
</appSettings>
string path = Environment.ExpandEnvironmentVariables(ConfigurationManager.AppSettings["Database"]);
“主”目录的根路径在 %USERPROFILE% 变量中,尽管 %APPDATA% 是放置您正在谈论的东西的传统位置。还有用于系统范围数据的 %ALLUSERSPROFILE%(尽管在 Windows 7 中它实际上指向一个特殊的系统范围数据文件夹,而不是“公共(public)”配置文件。)
关于c# - 是否可以在 App.config 文件中的 appSettings 中引用主目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6651132/