Feron Geschrieben 28. September 2012 Geschrieben 28. September 2012 Hallo Leute, habe gestern abend begonnen an einer kleinen Anwendung zum Synchronisieren von Dateien zu arbeiten und bin auf ein kleines Problem gestoßen. Zuerst habe ich mich mich darum gekümmert das man einen kleinen Dateiexplorer hat und sich durch die Verschiedenen Verzeichnisse klicken kann. Die Verzeichnisse und ihre Dateien werden in einer Listbox angezeigt und beim klick auf ein Verzeichnis wechselt man in dieses Verzeichnis. Dabei wird die Listbox von den alten Einträgen geleert und mit den Einträgen des neuen Verzeichnisses befüllt. Soweit ist das alles ok. Aber wenn ich eine Datei anklicke die natürlich auch eine Dateiendung wie z.B. ".jpg" hat sollte meine Anwendung natürlich nicht versuchen in den Pfad C:\Bilder\EinBild.jpg zu wechseln ---> Exception Nun wollte ich das mit einer einfachen if abfrage lösen, indem ich in meinem Pfad abfrage ob eine Dateiendung vorhanden ist. Der * symbolisiert ja einen Platzhalter und daher probierte ich auf " .* " als Dateiendung zu prüfen, da Verzeichnisse ja keine Endung haben. if (selectedDirectory.EndsWith(".*") == true) { } else { Datei_Liste.AddRange(Directory.GetFiles(selectedDirectory, "*")); // Exception da C:\Bilder\EinBild.jpg kein Verzeichnis ist. Ordner_Liste.AddRange(Directory.GetDirectories(selectedDirectory, "*")); for (int i = 0; i < Datei_Liste.Count; i++) { LBOXVerzeichnis1.Items.Add(Datei_Liste[i]); } for (int i = 0; i < Ordner_Liste.Count; i++) { LBOXVerzeichnis1.Items.Add(Ordner_Liste[i]); } } Leider funktioniert es über den ".*" Filter nicht so wie erhofft. Wenn ich z.B. auf ".jpg" prüfe klappte es aber ich will ja nicht für jede Dateiendung so einen Filter setzen müssen. Weis evtl. jemand eine Lösung für mein Problem? Zitieren
songokude Geschrieben 30. September 2012 Geschrieben 30. September 2012 Hallo Feron, warum verwendets du hier nicht die Funktion von den Klassen Directory, Path oder File. z.B. die Funktion Path.HasExtension oder anders mit der Funktion File.Exists. Wenn die Datei exisitert, dann weißt du, dass es kein Ordner ist... Zitieren
Feron Geschrieben 30. September 2012 Autor Geschrieben 30. September 2012 Hi songokude, danke für deinen Hinweis mit "Path.HasExtension". Damit funktioniert es so wie ich mir das vorgestellt habe Warum ich diesen Weg nicht vorher bedacht habe? ich wusste bis gerade eben noch nicht das es eine "HasExtension" Methode überhaupt gibt Da fehlt eben ein wenig die Erfahrung mit dem .NET Framework. Solche Anfänger Fragen kommen hoffentlich nicht mehr zu häufig vor bei mir Aber super jetzt weis ich ja bescheid das es so eine Funktion gibt und muss mir nichts selber zusammen basteln. Danke Zitieren
Pixie Geschrieben 1. Oktober 2012 Geschrieben 1. Oktober 2012 Du holst Dir doch eh die Directories mit GetDirectories() und die Dateien mit GetFiles(). Dann weißt Du doch von vornherein, welcher Eintrag von welchem Typ ist. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.