Zum Inhalt springen

"Platzhalter" für jegliches Zeichen


Empfohlene Beiträge

Geschrieben

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?

Geschrieben

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...

Geschrieben

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 :D

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

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...