Heim >Backend-Entwicklung >C++ >Wie kann ich mehrere Dateitypen mit Directory.GetFiles() oder EnumerateFiles() abrufen?

Wie kann ich mehrere Dateitypen mit Directory.GetFiles() oder EnumerateFiles() abrufen?

DDD
DDDOriginal
2025-01-26 19:21:10629Durchsuche

How Can I Retrieve Multiple File Types Using Directory.GetFiles() or EnumerateFiles()?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn