我们遇到的问题是,如果帮助文件的路径名包含虚拟化文件夹名称,则ShowHelp似乎在Vista和Windows Server 2008下失败。 例如,在德语版Vista下,“Program Files”被称为“Program”。 电话
System.Windows.Forms.Help.ShowHelp(null,
@"C:\Programme\Microsoft Visual Studio 9.0\Common7\Tools\spyxx.chm");
失败了,小时候
System.Windows.Forms.Help.ShowHelp(null,
@"C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\spyxx.chm");
成功。
如果C#中有任何方法可以将文件路径转换为非虚拟化对应文件吗?
或者该问题有其他解决办法吗?
此致
答案 0 :(得分:0)
失败,因为C:\ Program不是真正的文件夹 - 它只是一个显示的名称。在Vista和7上,无论操作系统语言如何,这些文件夹始终都有英文名称。
正确的方法是查看注册表并查看它的安装位置。在HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ VisualStudio \ 9.0中查找InstallDir密钥。这将类似于c:\ Program Files(x86)\ Microsoft Visual Studio 9.0 \ Common7 \ IDE \如果你有 - tou然后可以操纵这个路径来取代Common7 \ Tools。
换句话说,根本不要对路径进行硬编码。
如果您必须知道Program Files文件夹的名称,use GetFolderPath with the appropriate parameter而不是硬编码。