2011-01-07 20 views
2

パス圧縮に問題があります。私は%USERPROFILE%\ AppData \ Roamingのようなレジストリ値を読んでいます。私が抱えている問題は、C:\ Users \ John \ AppData \ Roamingにパスを拡張し続けることです。 環境拡張については知っていますが、今後はパス圧縮の問題がある場合には使用したくありません。私が使用しているコードは:C#パス圧縮の問題

RegistryKey hkUsersPath = Registry.Users.OpenSubKey(@".DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\"); 

DefaultAppData = Convert.ToString(hkUsersPath.GetValue("AppData")); 
if (hkUsersPath.GetValue("AppData") == null) 
DefaultAppData = Convert.ToString(hkUsersPath.GetValue("APPDATA")); 

ご迷惑をおかけ致します。ありがとうございました。

答えて

2

あなたは、環境変数を拡張しないように指定することができますどこで呼び出すことができますoverloaded GetValue methodがあります:

hkUsersPath.GetValue("AppData", null, RegistryValueOptions.DoNotExpandEnvironmentNames); 
+0

ありがとうございました!!!私はオーバーロードされたメソッドを見ていたが、私はそれを見落としたと思う。完璧に動作します! –