Проблема сжатия пути C # - PullRequest
2 голосов
/ 07 января 2011

У меня проблема со сжатием пути. Я читаю значение реестра, например% USERPROFILE% \ AppData \ Roaming. Проблема у меня в том, что он продолжает расширять путь к C: \ Users \ John \ AppData \ Roaming. Я знаю о среде Expand, но я не хочу использовать это в случае, если у меня возникнет проблема сжатия пути в будущем. Код, который я использую:

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

Любой совет приветствуется. Спасибо.

1 Ответ

2 голосов
/ 07 января 2011

Существует перегруженный метод GetValue , который вы можете вызвать, где вы можете указать, чтобы не расширять переменные среды:

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