2011-01-07 3 views
2

Ich habe ein Problem mit der Pfadkomprimierung. Ich lese einen Registrierungswert wie% USERPROFILE% \ AppData \ Roaming. Das Problem, das ich habe, ist, dass es den Pfad nach C: \ Users \ John \ AppData \ Roaming erweitert. Ich weiß über Environment Expand, aber ich möchte das nicht verwenden, wenn ich in Zukunft ein Pfadkomprimierungsproblem habe. Der Code, den ich verwende ist:C# Pfadkomprimierung Problem

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")); 

Jeder Rat ist willkommen. Vielen Dank.

Antwort

2

Es gibt eine overloaded GetValue method, die Sie aufrufen können, wo Sie nicht Umgebungsvariablen erweitern angeben:

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

Danke !!! Ich habe die überladenen Methoden durchgesehen, aber ich habe es übersehen. Funktioniert perfekt! –