Environment.GetEnvironmentVariable(“windir”)奇怪的行为

这条线是

if (!val.Contains(Environment.GetEnvironmentVariable("windir"))) 

这似乎与Windows 7(64位)系统工作得很好,并会检测我所看到的string是否包含任何版本的C:\窗口与任何大小写。 但在XP下,相同的代码似乎没有检测到大小写的变化。 我有打印到控制台进行debugging的所有结果和一些c:\ WINDOWS正在通过,但是当我执行

 echo %windir% 

在命令窗口中,我得到C:\ WINDOWS。 有没有办法重写我的testing,以便它不会打破与Win7的兼容性,但会捕获与XP的这些差异?

谢谢

我建议使用这个,而不是获取Windows文件夹:

 var windowsPath = Environment.GetFolderPath(Environment.SpecialFolder.Windows) 

你可以做这个不区分大小写的比较:

 if (val.IndexOf(windowsPath, StringComparison.InvariantCultureIgnoreCase) < 0)