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?
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...
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
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.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden