Heim >Backend-Entwicklung >C++ >Wie kann ich mehrere Dateitypen mit Directory.GetFiles() oder EnumerateFiles() abrufen?
Effizientes Abrufen von Dateien verschiedener Typen
Die Directory.GetFiles()
-Methode scheint zwar unkompliziert zu sein, unterstützt jedoch nicht direkt mehrere Dateitypfilter. Es gibt jedoch mehrere wirksame Strategien, um diese Einschränkung zu überwinden.
Für .NET 4.0 und spätere Versionen bietet die EnumerateFiles()
-Methode eine überlegene Lösung unter Verwendung der Where()
-Klausel von LINQ:
<code class="language-csharp">var files = Directory.EnumerateFiles("C:\path", "*.*", SearchOption.AllDirectories) .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));</code>
Dies filtert die aufgelisteten Dateien elegant basierend auf angegebenen Erweiterungen.
Für ältere .NET-Versionen ist ein vergleichbarer Ansatz möglich:
<code class="language-csharp">var files = Directory.GetFiles("C:\path", "*.*", SearchOption.AllDirectories) .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));</code>
Es ist jedoch wichtig, sich daran zu erinnern, dass GetFiles()
ein vollständiges Array im Speicher zurückgibt. Dies kann insbesondere bei umfangreichen Verzeichnissen zu Leistungsproblemen und hohem Speicherverbrauch führen. Daher wird die Verwendung von EnumerateFiles()
für eine optimale Effizienz dringend empfohlen.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Dateitypen mit Directory.GetFiles() oder EnumerateFiles() abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!