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

27

我有这样一个情况,需要通过读取注册表设置来返回一个目录路径。注册表值以以下格式返回了一个路径:

%CommonProgramFiles%\System\web32.dll

当消费者代码期望以某种格式呈现时,

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

我该如何在 .NET 代码中解析这样的目录路径?

2个回答

37

我需要一个完整的目录路径,它可以是任何其他环境变量,不仅仅是%CommonProgramFiles%。 - Faisal
3
我不理解你的评论,@Faisal。ExpandEnvironmentVariables会扩展你提供的字符串中看到的任何环境变量,并在你在问题中提到的特定情况下产生完整路径。 - Marcelo Cantos

22
你可以使用 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");

当然,Path.Combine 的覆盖仅适用于框架的 v4 版本。 - Rowland Shaw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接