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; }