5

ラインは

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

Windows 7(64ビット)システムで問題なく動作するようで、見ている文字列に大文字の c:\windows のバージョンが含まれているかどうかを検出します。しかし、XP では、同じコードがケースの変更を検出しないようです。デバッグのためにすべての結果をコンソールに出力しており、一部の c:\WINDOWS は通過していますが、実行すると

echo %windir%

コマンド ウィンドウに C:\WINDOWS が表示されます。Win7 との互換性を損なうことなく、XP とのこれらの違いをキャッチできるようにテストを書き直す方法はありますか?

ありがとう

4

1 に答える 1

9

代わりにこれを使用して、windows フォルダーを取得することをお勧めします。

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

そして、大文字と小文字を区別しない比較のためにこれを行うことができます:

if (val.IndexOf(windowsPath, StringComparison.InvariantCultureIgnoreCase) < 0)
于 2013-07-21T02:55:08.890 に答える