Heim > Backend-Entwicklung > C++ > Wie kann ich mehrere Dateifilter in Directory.getFiles () kombinieren?

Wie kann ich mehrere Dateifilter in Directory.getFiles () kombinieren?

DDD
Freigeben: 2025-01-26 19:06:11
Original
191 Leute haben es durchsucht

How Can I Combine Multiple File Filters in Directory.GetFiles()?

Kombinieren von Dateifiltern in Directory.GetFiles()

Die Directory.GetFiles()-Methode in .NET bietet eine praktische Möglichkeit, eine Liste von Dateien abzurufen, die einem bestimmten Filter entsprechen. Beim Versuch, mehrere Dateitypen zu filtern, besteht das Standardverhalten jedoch darin, nur Dateien abzurufen, die dem ersten Filter entsprechen.

Trotz versuchter Kombinationen wie „.mp3|.jpg“ und „.mp3;.jpg“ erfasst keine dieser Methoden dies in einem Aufruf. Zwei Dateitypen. Um diese Einschränkung zu umgehen, ziehen Sie die folgenden Alternativen in Betracht:

Für .NET 4.0 und höher:

Implementieren Sie eine LINQ-Abfrage, um die Ergebnisse von Directory.EnumerateFiles() zu filtern, das alle Dateipfade in einem Verzeichnis abruft. Die Abfrage filtert bestimmte Dateierweiterungen (.mp3 und .jpg).

<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

Für frühere Versionen von .NET:

Verwenden Sie die Methode Directory.GetFiles(), um Dateien mit einer beliebigen Erweiterung (.) abzurufen, und wenden Sie eine LINQ-Abfrage an, um die Ergebnisse zu filtern.

<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

Hinweis: Bitte beachten Sie den Vorschlag in den Kommentaren zur Verwendung der StringContains-Funktion anstelle der EndsWith-Funktion, um die Leistung zu optimieren. Beachten Sie außerdem mögliche Speicherprobleme bei der Verwendung der EnumerateFiles()-Methode, bei denen das zugewiesene Speicherlimit überschritten werden kann, wenn das zugrunde liegende Objekt nicht zuerst freigegeben wird.

Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Dateifilter in Directory.getFiles () kombinieren?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage