Laden...

Wie beim OpenFileDialog nach Dateiendung filtern?

Erstellt von Rico913 vor 3 Jahren Letzter Beitrag vor 3 Jahren 415 Views
R
Rico913 Themenstarter:in
95 Beiträge seit 2020
vor 3 Jahren
Wie beim OpenFileDialog nach Dateiendung filtern?

Hi,

Ich habe ein OpenFileDialog mit dem ich verschiedene Bilddateien öffnen möchte.
Nun ist es aber so, dass ich von verschiedenen Tool-Herstellern unterschiedliche Bildformate mit entsprechenden Dateiendungen habe, für die ich einen Import-Filter schreiben muss.

Ich stell mir das ganze so vor:

  • Öffne Dateien
  • Wenn Datei Endung *.ser hat, dann mach das

if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                
                string[] selectedFiles = openFileDialog1.SafeFileNames;
                string[] files = openFileDialog1.FileNames;
                

                Bilder_Anzahl += files.Length;
                

                for (int i = 0; i < files.Length; i++)
                {
                ........

Wie der Filter vor dem Öffnen funktioniert ist mir klar, aber danach?
Gibt es da eine einfache Möglichkeit?

3.825 Beiträge seit 2006
vor 3 Jahren

So ganz verstehe ich die Frage nicht.

"if" kennst Du und Dateiendung abfragen geht zum Beispiel mit filename.ToLower().EndsWith(".jpg").

Es gibt außerdem "Path.GetExtension()".

Deine Schleife geht einfacher mit "foreach".

Hinweis : Der OpenFileDialog ändert das Arbeitsverzeichnis wenn man das Verzeichnis wechselt.
Das am besten wieder herstellen.

string verz = Environment.CurrentDirectory;
OpenFileDialog ...
Environment.CurrentDirectory = verz;

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

R
Rico913 Themenstarter:in
95 Beiträge seit 2020
vor 3 Jahren

Super ... Danke filename.ToLower().EndsWith(".jpg") ist genau das, was ich gesucht habe 😄

Den Verzeichnishinweis hab ich übernommen.

A
764 Beiträge seit 2007
vor 3 Jahren

Es gibt außerdem "Path.GetExtension()".

Für Datei- und Ordneroperationen bitte gerne die Klassen aus dem System.IO-Namespace (oder passendes Äquivalent) verwenden.