Musím to vyzkoušet, klíč, sada klíč a jasný klíč a ve všech případech úplnou cestu a klíčové hodnoty nemusí vůbec existovat. Myslel jsem, že příkazy, které by vysvětlovalo, že tím, že vrátí false, pokud část cesty nemusí existovat na kontrolu a vytváření cestu na soubor, pokud to neexistuje, ale to se zdá být případ.
internal bool DownloadGroupByOff()
{
using (RegistryKey hku = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64))
{
using (RegistryKey explore = hku.OpenSubKey(@"Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell\{885A186E-A440-4ADA-812B-DB871B942259}"))
{
if (GetValueInt(explore,"GroupView") == 0)
return true;
}
}
return false;
}
public void DownloadGroupByEnable()
{
using (RegistryKey hku = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64))
{
using (RegistryKey explore = hku.OpenSubKey(@"Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell\{885A186E-A440-4ADA-812B-DB871B942259}", true))
{
explore.DeleteValue("GroupView");
explore.DeleteValue("Mode");
}
}
}
public void DownloadGroupByDisable()
{
using (RegistryKey hku = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64))
{
using (RegistryKey explore = hku.OpenSubKey(@"Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell\{885A186E-A440-4ADA-812B-DB871B942259}", true))
{
explore.SetValue("", "Downloads");
explore.SetValue("GroupView", "0");
explore.SetValue("Mode", "4");
}
}
}
Takže to, co bych chtěl vědět je nejčistší způsob, jak zvládnout tento problém. Mohl jsem rychle napsat funkci, která přeruší cesty, testy každé úrovni, a přidá podklíče, pokud to není už tam, ale já bych raději dělat, že když tam je více elegantní nebo vestavěný způsob, jak to udělat.