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

Fai*_*sal 23 .net c# vb.net

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

%CommonProgramFiles%\System\web32.dll
Run Code Online (Sandbox Code Playgroud)

而消费者代码期望它的格式

C:\Program Files\Common Files\System\web32.dll
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*tos 31

Environment.ExpandEnvironmentVariables.如果您控制注册表值的创建,请将其存储为注册表中的可扩展字符串,注册表API将自动为您展开它.

  • 我不明白你的评论,@ Faisal.`ExpandEnvironmentVariables`将扩展它在您提供的字符串中看到的任何环境变量,并在您引用问题的特定情况下生成完整路径. (2认同)

Ode*_*ded 19

你可以使用这个Environment.GetEnvironmentVariable功能:

string commonDir = Environment.GetEnvironmentVariable("CommonProgramFiles");
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用Path.Combine附加路径的其余部分:

string fullPath = Path.Combine(commonDir, "System", "web32.dll");
Run Code Online (Sandbox Code Playgroud)

另一种选择是使用Environment.ExpandEnvironmentVariables.这将用它们的值替换所有环境变量:

string fullPath = Environment.ExpandEnvironmentVariables("%CommonProgramFiles%\System\web32.dll");
Run Code Online (Sandbox Code Playgroud)