Ответ 1
Environment.ExpandEnvironmentVariables
. Если вы контролируете создание значения реестра, сохраните его как расширяемую строку в реестре, и API реестра автоматически расширит его для вас.
У меня есть ситуация, когда мне нужно вернуть путь к каталогу, читая настройки реестра. Значение реестра возвращает мне путь в формате
%CommonProgramFiles%\System\web32.dll
в то время как потребительский код ожидает его в формате
C:\Program Files\Common Files\System\web32.dll
Как я могу разрешить такой путь каталога в .net-коде?
Environment.ExpandEnvironmentVariables
. Если вы контролируете создание значения реестра, сохраните его как расширяемую строку в реестре, и API реестра автоматически расширит его для вас.
Вы можете использовать функцию Environment.GetEnvironmentVariable
:
string commonDir = Environment.GetEnvironmentVariable("CommonProgramFiles");
Затем вы можете использовать Path.Combine
, чтобы добавить оставшуюся часть пути:
string fullPath = Path.Combine(commonDir, "System", "web32.dll");
Другой вариант - использовать Environment.ExpandEnvironmentVariables
. Это заменит все переменные среды на их значения:
string fullPath = Environment.ExpandEnvironmentVariables("%CommonProgramFiles%\System\web32.dll");