C# GetEnvironmentVariable(“windir”)奇怪的行为
电话是C# GetEnvironmentVariable(“windir”)奇怪的行为,c#,windows,windows-7,windows-xp,environment-variables,C#,Windows,Windows 7,Windows Xp,Environment Variables,电话是 if (!val.Contains(Environment.GetEnvironmentVariable("windir"))) 它似乎在Windows7(64位)系统中运行良好,并将检测我正在查看的字符串是否包含任何大小写的c:\Windows版本。但在XP下,相同的代码似乎无法检测到案例中的更改。我将所有结果打印到控制台进行调试,一些c:\WINDOWS正在通过,但当我执行 echo %windir% 在命令窗口中,我得到C:\WINDOWS。有没有一种方法可以重写我的测试,这样
if (!val.Contains(Environment.GetEnvironmentVariable("windir")))
它似乎在Windows7(64位)系统中运行良好,并将检测我正在查看的字符串是否包含任何大小写的c:\Windows版本。但在XP下,相同的代码似乎无法检测到案例中的更改。我将所有结果打印到控制台进行调试,一些c:\WINDOWS正在通过,但当我执行
echo %windir%
在命令窗口中,我得到C:\WINDOWS。有没有一种方法可以重写我的测试,这样它就不会破坏与Win7的兼容性,但会捕获与XP的这些差异
谢谢我建议使用此选项来获取windows文件夹:
var windowsPath = Environment.GetFolderPath(Environment.SpecialFolder.Windows)
对于不区分大小写的比较,您可以这样做:
if (val.IndexOf(windowsPath, StringComparison.InvariantCultureIgnoreCase) < 0)
if(val.IndexOf(windowsPath,StringComparison.InvariantCultureIgnoreCase)<0)
Contains()
始终区分大小写。答案已位于: