【发布时间】:2013-01-05 11:35:13
【问题描述】:
今天我遇到了一个以前从未遇到过的问题。我正在尝试从 Windows 注册表中的值检查文件是否存在。更具体地说,我从 Flight Simulator 获取安装路径并检查是否安装了模块。
我得到注册表键就好了,它被转换为一个字符串(从一个对象),但我似乎无法在它之后连接文件名(之前很好)。
RegistryKey pRegKey = Registry.CurrentUser;
pRegKey = pRegKey.OpenSubKey(@"Software\Microsoft\Microsoft Games\Flight Simulator\10.0");
string fSPath = pRegKey.GetValue("AppPath").ToString(); // Receives "S:/Apps/FSX/"
如果我显示这样的消息框,它不会连接:
MessageBox.Show(fSPath + "Modules");
【问题讨论】:
-
作为记录,我尝试使用 StringBuilder 并显式转换两个文本部分。
-
缺少的部分是“你会得到什么”。它不连接,但它有什么作用?消息框中显示什么?
-
你确定你得到了正确的
fSPath值吗?你有没有逐行调试你的代码。 -
我的猜测是,在 pRegKey 的末尾有一个 '\0' 字符。
-
@CSharpie - 所以? C#/.NET 字符串不是 C 字符串(无空终止符)。
标签: c# string concatenation