Environment.GetEnvironmentVariable("windir")奇怪的行为

sea*_*nr8 3 c# windows windows-xp environment-variables windows-7

这条线是

if (!val.Contains(Environment.GetEnvironmentVariable("windir")))
Run Code Online (Sandbox Code Playgroud)

这似乎与Windows 7(64位)系统一样正常,并将检测我正在查看的字符串是否包含任何大小写的c:\ windows版本.但在XP下,相同的代码似乎没有检测到大小写的变化.我将所有结果打印到控制台进行调试,有些c:\ WINDOWS正在通过,但是当我执行时

echo %windir%
Run Code Online (Sandbox Code Playgroud)

在命令窗口中,我得到C:\ WINDOWS.有没有办法重写我的测试,以便它不会破坏与Win7的兼容性,但会抓住这些与XP的差异?

谢谢

p.s*_*w.g 8

我建议使用它来获取windows文件夹:

var windowsPath = Environment.GetFolderPath(Environment.SpecialFolder.Windows)
Run Code Online (Sandbox Code Playgroud)

你可以这样做以进行不区分大小写的比较:

if (val.IndexOf(windowsPath, StringComparison.InvariantCultureIgnoreCase) < 0)
Run Code Online (Sandbox Code Playgroud)