You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Directory.GetFiles高效搜索含多个关键词的文件?

单次搜索匹配多个关键词的文件解决方案

你当前的代码只能单次匹配单个关键词,要实现同时查找包含kword1或kword2的文件,无需分两次搜索,推荐用以下高效方案:

方法:结合枚举与LINQ筛选

用Directory.EnumerateFiles(延迟加载,比GetFiles更适合大目录场景)获取所有.txt文件,再通过LINQ筛选文件名包含任意关键词的结果,一次遍历完成所有匹配:

using System.Linq;
using System.IO;

string[] targetKeywords = { kword1, kword2 };
string[] matches = Directory.EnumerateFiles(path1, "*.txt", SearchOption.AllDirectories)
                           .Where(filePath => 
                               targetKeywords.Any(keyword => 
                                   Path.GetFileName(filePath).Contains(keyword)
                               )
                           )
                           .ToArray();

关键细节:

  • 用Path.GetFileName(filePath)仅检查文件名,避免路径中包含关键词导致误匹配
  • 若需要不区分大小写的匹配,可修改Contains方法:
    Path.GetFileName(filePath).Contains(keyword, StringComparison.OrdinalIgnoreCase)
    
  • EnumerateFiles会逐个返回文件,无需一次性加载所有文件路径到内存,在文件数量多的场景下性能更优

内容的提问来源于stack exchange,提问作者i.fathy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 17:18:25