如何在.NET中扩展环境变量%CommonProgramFiles%\ system \

时间:2010-04-25 07:03:08

标签: c# .net vb.net

我有一种情况需要通过读取注册表设置来返回目录路径。注册表值以格式

返回一条路径
%CommonProgramFiles%\System\web32.dll

,而消费者代码期望格式为

C:\Program Files\Common Files\System\web32.dll

如何在.net代码中解析此类目录路径?

2 个答案:

答案 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");