c# 操作注册表有空格怎么办

无法读取有空格的项

        public static string getJavaPath()
        {
            string value = "empty";
            RegistryKey localMachine = Registry.LocalMachine;
            try
            {
                RegistryKey javasoft = localMachine.OpenSubKey(@"SOFTWARE\JavaSoft\Java Runtime Environment", true);
                value = javasoft.ToString();
                //value = "fuck";
            }
            catch (Exception e)
            {
                value = "no java" + e.ToString();
            }
            return value;
        }
阅读 4.4k
2 个回答

你是不是用的64位的操作系统?

你这段代码本身应该是没有问题的,有两个可能发生的问题

1. javasoft 有可能是 null,所以需要预判,如果是C#6,可以

value = javasoft?.ToString();

2. 你这个程序运行的时候如果没有管理员权限,可能出现访问权的问题。

System.Security.SecurityException: 不允许所请求的注册表访问

“以管理员身份运行”就行了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进