Home > Backend Development > C++ > How Can I Combine Multiple File Filters in Directory.GetFiles()?

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

DDD
Release: 2025-01-26 19:06:11
Original
191 people have browsed it

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

Combining file filters in Directory.GetFiles()

The Directory.GetFiles() method in .NET provides a convenient way to retrieve a list of files matching a specific filter. However, when trying to filter multiple file types, the default behavior is to retrieve only files matching the first filter.

Despite trying combinations like ".mp3|.jpg" and ".mp3;.jpg", none of these methods capture this in one call Two file types. To work around this limitation, consider the following alternatives:

For .NET 4.0 and above:

Implement a LINQ query to filter the results of Directory.EnumerateFiles(), which retrieves all file paths in a directory. The query filters specific file extensions (.mp3 and .jpg).

<code class="language-csharp">var files = Directory.EnumerateFiles("C:\path", "*.*", SearchOption.AllDirectories)
    .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));</code>
Copy after login

For earlier versions of .NET:

Use the Directory.GetFiles() method to retrieve files matching any extension (.) and apply a LINQ query to filter the results.

<code class="language-csharp">var files = Directory.GetFiles("C:\path", "*.*", SearchOption.AllDirectories)
    .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));</code>
Copy after login

Note: Please consider the suggestion in the comments about using the StringContains function instead of the EndsWith function to optimize performance. Additionally, please be aware of possible memory issues when using the EnumerateFiles() method, where the allocated memory limit may be exceeded if the underlying object is not released first.

The above is the detailed content of How Can I Combine Multiple File Filters in Directory.GetFiles()?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template