首页 / C#开发 / 正文

C#/.NET应用程序编程开发中如何根据主键读取或者设置(改变)特定的系统环境变量的值?

2666 1 发布于: 2019-06-04 读完约需4分钟

问题描述

在Windows操作系统,使用C#进行应用程序编程开发时,如何检测指定的环境变量是否存在?

如果不存在,又怎样使用C#设置指定环境变量的值呢?

方案一

在.NET Framework中内置了可以操作Windows操作系统的类System.Environment

C#读取指定环境变量名的值的方法GetEnvironmentVariable(),如下:

var value = System.Environment.GetEnvironmentVariable(variable [, Target])

如果要设置一个环境变量,则使用SetEnvironmentVariable()方法,如下:

System.Environment.SetEnvironmentVariable(variable, value [, Target])

备注:可选参数target是EnvironmentVariableTarget类型的枚举,它可以是:Machine,Process或者User。如果省略,默认为Process。EnvironmentVariableTarget.Machine需要使用超级管理员权限。

方案二

如果在控制台应用程序中,使用System.Environment.GetEnvironmentVariable()方法会自动展开环境变量,也就是路径中的文件夹“%SystemRoot%\system32”被重写为“C:\Windows\system32”,如果你不希望路径被重写,则可以:

string keyName = @"SYSTEM\CurrentControlSet\Control\Session Manager\Environment\";
string existingPathFolderVariable = (string)Registry.LocalMachine.OpenSubKey(keyName).GetValue("PATH", "", RegistryValueOptions.DoNotExpandEnvironmentNames);

方案三

另外一种读取和设置Windows操作系统环境变量的方式:

string EnvPath = System.Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Machine) ?? string.Empty;
if (!string.IsNullOrEmpty(EnvPath) && !EnvPath .EndsWith(";"))
    EnvPath = EnvPath + ';';
EnvPath = EnvPath + @"C:\Test";
Environment.SetEnvironmentVariable("PATH", EnvPath , EnvironmentVariableTarget.Machine);

希望以上方案对你在使用C#语言读取或者设置环境变量的程序开发时有所帮助。

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

上一篇: C#/.NET应用程序编程开发中如何判断一个集合中是否包含某个指定的元素对象

下一篇: C#/.NET应用程序编程开发中如果判断指定的文件是否存在?

本文永久链接码友网 » C#/.NET应用程序编程开发中如何根据主键读取或者设置(改变)特定的系统环境变量的值?

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册