Heim > Backend-Entwicklung > C++ > Wie kann ich Directory.GetFiles() effizient verwenden, um mehrere Dateitypen abzurufen?

Wie kann ich Directory.GetFiles() effizient verwenden, um mehrere Dateitypen abzurufen?

Barbara Streisand
Freigeben: 2025-01-26 19:11:09
Original
811 Leute haben es durchsucht

How Can I Efficiently Use Directory.GetFiles() to Retrieve Multiple File Types?

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>
Nach dem Login kopieren
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>
Nach dem Login kopieren
Dies lädt zunächst alle Dateien und wendet dann denselben Linq -Filter an.

Wichtige Hinweise

  • Leistung: zwar bequem, kann im Vergleich zu einer hoch optimierten benutzerdefinierten Lösung einen leichten Leistungsaufwand in extrem großen Verzeichnissen einführen. Für leistungskritische Anwendungen kann manuelle Iteration vorzuziehen sein. Directory.EnumerateFiles()
  • Pfadsyntax: Einschließen Sie immer Ihren Verzeichnispfad in doppelte Zitate ("C: Pfad"), um Fehler zu vermeiden.
Dieser raffinierte Ansatz bietet eine klare und effiziente Lösung zum Abrufen mehrerer Dateitypen mithilfe

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!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage