Entwickler-Ecke

WinForms - Directory.GetFiles 2.Argument soll mehrere Files finden


Delete - Fr 09.09.16 19:25
Titel: Directory.GetFiles 2.Argument soll mehrere Files finden
Hallo Leute,
ich habe ein kleines Problem. Ich möchte, dass die Methode, alle Bilder auflistet. Da es nicht nur ein Bildformat gibt, weiß ich nicht, was ich dort eintragen soll.


C#-Quelltext
1:
string[] files = Directory.GetFiles(Pfad, ".png");                    


Jetzt würde er ja nur nach .png Files suchen, er soll aber auch noch .jpg und das andere alles suchen. Wie mache ich das?


Th69 - Fr 09.09.16 19:50

Hallo,

es muß dann aber noch ein Wildcard-Symbol hin, z.B.

C#-Quelltext
1:
Directory.GetFiles(Pfad, "*.png");                    


Um mehrere verschiedene zu suchen, kannst du einfach die Methode mehrfach nacheinander aufrufen und die Ergebnisse zu einer List<string> hinzufügen.
Noch besser dafür geeignet ist dann allerdings die Directory.EnumerateFiles-Methode [https://msdn.microsoft.com/de-de/library/dd413233(v=vs.110).aspx], da dann nicht erst intern jeweils ein Array erzeugt werden muß:

C#-Quelltext
1:
2:
3:
4:
List<string> files = new List<string>;

list.AddRange(Directory.EnumerateFiles(path, "*.png");
list.AddRange(Directory.EnumerateFiles(path, "*.jpg");

Alternativ: alle Dateien zurückgeben lassen und selber nach den verschiedenen Endungen filtern.
Unter Multiple file-extensions searchPattern for System.IO.Directory.GetFiles [http://stackoverflow.com/questions/7039580/multiple-file-extensions-searchpattern-for-system-io-directory-getfiles] gibt es noch mehr Code dazu.