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
Freigeben: 2025-01-26 19:21:10
Original
684 Leute haben es durchsucht

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:

var files = Directory.EnumerateFiles("C:\path", "*.*", SearchOption.AllDirectories)
            .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));
Nach dem Login kopieren

Dies filtert die aufgelisteten Dateien elegant basierend auf angegebenen Erweiterungen.

Für ältere .NET-Versionen ist ein vergleichbarer Ansatz möglich:

var files = Directory.GetFiles("C:\path", "*.*", SearchOption.AllDirectories)
            .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));
Nach dem Login kopieren

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!

Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage