Microsoft.Win32.KeyHandler.GetSubKeyNames C# (CSharp) Méthode

GetSubKeyNames() public méthode

public GetSubKeyNames ( ) : string[]
Résultat string[]
		public string [] GetSubKeyNames ()
		{
			DirectoryInfo selfDir = new DirectoryInfo (ActualDir);
			DirectoryInfo[] subDirs = selfDir.GetDirectories ();
			string[] subKeyNames;

			// for volatile keys (cannot contain non-volatile subkeys) or keys
			// without *any* presence in the volatile key section, we can do it simple.
			if (IsVolatile || !Directory.Exists (GetVolatileDir (Dir))) {
				subKeyNames = new string[subDirs.Length];
				for (int i = 0; i < subDirs.Length; i++) {
					DirectoryInfo subDir = subDirs[i];
					subKeyNames[i] = subDir.Name;
				}
				return subKeyNames;
			}

			// We may have the entries repeated, so keep just one of each one.
			DirectoryInfo volatileDir = new DirectoryInfo (GetVolatileDir (Dir));
			DirectoryInfo [] volatileSubDirs = volatileDir.GetDirectories ();
			Dictionary<string,string> dirs = new Dictionary<string,string> ();

			foreach (DirectoryInfo dir in subDirs)
				dirs [dir.Name] = dir.Name;
			foreach (DirectoryInfo volDir in volatileSubDirs)
				dirs [volDir.Name] = volDir.Name;

			subKeyNames = new string [dirs.Count];
			int j = 0;
			foreach (KeyValuePair<string,string> entry in dirs)
				subKeyNames[j++] = entry.Value;

			return subKeyNames;
		}

Usage Example

        public string [] GetSubKeyNames(RegistryKey rkey)
        {
            KeyHandler self = KeyHandler.Lookup(rkey, true);

            return(self.GetSubKeyNames());
        }