ConfigurationManager
не будет автоматически расширять что-либо в настройках приложения, поскольку это просто строки произвольной формы, но вы можете сделать это вручную. Используйте ExpandEnvironmentVariables
метод Environment
, который расширит переменные формы %VARIABLENAME%
в соответствии с текущей средой. Итак:
<appSettings>
<add key="Database" value="sqlite:///%APPDATA%\database\test.db3" />
</appSettings>
string path = Environment.ExpandEnvironmentVariables(ConfigurationManager.AppSettings["Database"]);
Корневой путь к вашему «домашнему» каталогу находится в переменной% USERPROFILE%, хотя% APPDATA% - это традиционное место для обозначения того, о чем вы говорите. Существует также% ALLUSERSPROFILE% для общесистемных данных (хотя в Windows 7 он фактически указывает на специальную общесистемную папку данных, а не на «общедоступный» профиль).