private void Switch()
        {
            if (comboBox1.SelectedItem == null)
            {
                return;
            }
            if (xamppLocation == null)
            {
                return;
            }

            var n = comboBox1.SelectedItem.ToString();

            if (!projects.ContainsKey(n))
            {
                Log("ProjektID konnte nicht gefunden werden.");
                return;
            }
            var loc = projects[n];

            var isJunction  = JunctionPoint.Exists(htdocsLoc);
            var isDirOrFile = Directory.Exists(htdocsLoc) || File.Exists(htdocsLoc);

            if (!isJunction && isDirOrFile)
            {
                Log("htdocs existiert bereits.");
                return;
            }

            JunctionPoint.Create(htdocsLoc, loc, true);
            RefreshAll();
            Log($"{n} erfolgreich verknüpft.");
        }
        private void RefreshEntries()
        {
            string[] fileLines = null;

            if (!File.Exists(configFile))
            {
                Log("config.txt nicht gefunden.");
                ClearEntries();
                return;
            }

            try { fileLines = File.ReadAllLines(configFile); }
            catch (Exception ex)
            {
                Log("Fehler config.txt: " + ex.Message);
                ClearEntries();
                return;
            }

            if (fileLines.Length < 2)
            {
                Log("Keine XAMPP Path bzw. Projekt gefunden.");
                ClearEntries();
                return;
            }

            xamppLocation = fileLines[0].Trim();
            if (!Directory.Exists(xamppLocation))
            {
                Log("XAMPP Path ungültig.");
                ClearEntries();
                return;
            }

            var    dict    = new Dictionary <string, string>();
            string juncLoc = null;

            if (JunctionPoint.Exists(htdocsLoc))
            {
                juncLoc = JunctionPoint.GetTarget(htdocsLoc);
            }

            foreach (var l in fileLines.Skip(1))
            {
                if (string.IsNullOrWhiteSpace(l))
                {
                    Debug.WriteLine("Leere Zeile übersprungen");
                    continue;
                }

                var parts = l.Split('|');
                if (parts.Length > 2)
                {
                    Debug.WriteLine("Ungültiges Format (nur eine |-Trennlinie erlaubt).");
                    continue;
                }

                string location = null;
                string name     = null;

                if (parts.Length == 1)
                {
                    location = parts[0];
                    name     = Path.GetFileName(location);
                }
                else
                {
                    location = parts[0];
                    name     = parts[1];
                }

                if (!Directory.Exists(location))
                {
                    Debug.WriteLine("Projektpfad nicht gefunden.");
                    continue;
                }

                if (location == juncLoc)
                {
                    title = name;
                }

                dict.Add(name, location);
                Debug.WriteLine($"Projekt \"{name}\" hinzugefügt.");
            }

            projects = dict;
        }