多重过滤器:C#中灵活获取目录文件,一次满足多个条件

作者:微信公众号:【架构师老卢】
12-25 18:30
172

概述:在C#中,使用Directory.GetFiles()结合 LINQ 查询可轻松实现多个过滤器的文件获取。通过定义过滤器数组,可以动态选择符合多个条件的文件。

在C#中,使用多个过滤器调用Directory.GetFiles()方法可以通过多次调用该方法,并结合 LINQ 查询来实现。以下是一个详细的实例源代码,演示如何使用多个过滤器获取文件列表:

using System;
using System.IO;
using System.Linq;

class Program
{
    static void Main()
    {
        string directoryPath = @"C:\YourDirectoryPath";

        // 定义多个过滤器
        string[] filters = { "*.txt", "*.jpg", "*.pdf" };

        // 调用 GetFiles 方法,并合并结果
        string[] files = GetFilesWithMultipleFilters(directoryPath, filters);

        // 打印结果
        Console.WriteLine("符合过滤条件的文件列表:");
        foreach (var file in files)
        {
            Console.WriteLine(file);
        }
    }

    static string[] GetFilesWithMultipleFilters(string directoryPath, string[] filters)
    {
        // 使用 LINQ 查询,遍历每个过滤器,获取符合条件的文件
        var files = filters.SelectMany(filter =>
            Directory.GetFiles(directoryPath, filter)
        ).ToArray();

        return files;
    }
}

方法原理:

  1. GetFilesWithMultipleFilters方法接收目录路径和过滤器数组。
  2. 使用 LINQ 的 SelectMany 遍历每个过滤器,调用 Directory.GetFiles 获取符合条件的文件。
  3. 将结果合并为一个数组并返回。

此示例演示如何使用 LINQ 查询结合多个过滤器,以一次性获取目录中符合多个条件的文件列表。这种方法更灵活,允许根据具体需求动态指定过滤器。

阅读排行