我有一种情况需要通过读取注册表设置来返回目录路径。注册表值以格式
返回一条路径%CommonProgramFiles%\System\web32.dll
,而消费者代码期望格式为
C:\Program Files\Common Files\System\web32.dll
如何在.net代码中解析此类目录路径?
答案 0 :(得分:30)
Environment.ExpandEnvironmentVariables
。如果您控制注册表值的创建,请将其作为可扩展字符串存储在注册表中,注册表API将自动为您扩展它。
答案 1 :(得分:19)
您可以使用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");