Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

"Platzhalter" für jegliches Zeichen

Empfohlene Antworten

Veröffentlicht

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?

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

  • Autor

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.