- Verzeichnis.GetFiles von bestimmten Endung
Gibt es eine Möglichkeit das zu vereinfachen linq-Ausdruck, oder gibt es einen besseren Weg, dies zu tun?
Directory.GetFiles(dir, "*.*", SearchOption.AllDirectories)
.Where(s => s.EndsWith(".jpg", StringComparison.OrdinalIgnoreCase) ||
s.EndsWith(".gif", StringComparison.OrdinalIgnoreCase) ||
s.EndsWith(".png", StringComparison.OrdinalIgnoreCase) ||
...);
Grundsätzlich möchte ich, um alle Dateien einer bestimmten Endung. Leider, diese Methode ist nicht sehr flexibel. Ich würde eher in der Lage, hinzufügen von Erweiterungen zu einer Liste und Verzeichnis.GetFiles Rückkehr zu den Erweiterungen. Ist das möglich?
InformationsquelleAutor der Frage XSL | 2012-11-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, um Ihre Filterung, LINQ, Sie können es so machen:
Nun
ext
enthält eine Liste der zulässigen Erweiterungen; Sie können hinzufügen oder entfernen von Elementen aus es als notwendig, für flexible Filterung.InformationsquelleAutor der Antwort dasblinkenlight
Nicht die
- Verzeichnis.GetFiles(String, String)
überlastung schon tun? Sie würde einfach tunDirectory.GetFiles(dir, "*.jpg", SearchOption.AllDirectories)
Wenn Sie möchten, um Sie in einer Liste, dann ersetzen Sie einfach die
"*.jpg"
eine variable, iteriert über eine Liste und fassen die Ergebnisse zu einem Gesamtergebnis festgelegt. Viel deutlicher als einzeln anzugeben. =)Etwas wie...
(Wenn Ihr Verzeichnisse sind groß, mit
EnumerateFiles
stattGetFiles
potentiell effizientere)InformationsquelleAutor der Antwort Tyler Lee
Ich würde getan haben, mit nur eine einzige Zeile wie
InformationsquelleAutor der Antwort RkHirpara