Heim >Backend-Entwicklung >C++ >Wie kann ich Directory.GetFiles() effizient verwenden, um mehrere Dateitypen abzurufen?
effizient mehrere Dateitypen mit Directory.getFiles ()
abrufen Muss Dateien unterschiedlicher Typen aus einem Verzeichnis effizient abrufen? Directory.GetFiles()
ist ein praktisches Tool, hat jedoch Einschränkungen, wenn es sich um mehrere Dateierweiterungen handelt. Während der Verwendung "|" oder ";" Da Grenzwerte im Suchmuster nicht funktionieren, gibt es effektive Problemumgehungen.
Lösungen für .NET 4.0 und höher
für eine optimale Leistung in neueren .NET -Versionen, in Kombination mit Linq: Directory.EnumerateFiles()
<code class="language-csharp">var files = Directory.EnumerateFiles("C:\path", "*.*", SearchOption.AllDirectories) .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));</code>Dieser Ansatz ruft zuerst alle Dateien iterativ ab (verbessert die Leistung im Vergleich zum Laden alles auf einmal) und filtert dann die Ergebnisse mit einem Lambda -Ausdruck, um nur
und .mp3
Dateien zu halten. .jpg
Problemumgehung für ältere .NET -Versionen
Wenn Sie mit älteren .NET -Versionen arbeiten, können Sie die Lösung mit: Directory.GetFiles()
anpassen
<code class="language-csharp">var files = Directory.GetFiles("C:\path", "*.*", SearchOption.AllDirectories) .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));</code>Dies lädt zunächst alle Dateien und wendet dann denselben Linq -Filter an.
Wichtige Hinweise
Directory.EnumerateFiles()
oder des effizienteren Gegenstücks, Directory.GetFiles()
, abhängig von Ihrer .NET -Framework -Version. Directory.EnumerateFiles()
Das obige ist der detaillierte Inhalt vonWie kann ich Directory.GetFiles() effizient verwenden, um mehrere Dateitypen abzurufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!