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

C#中如何通过通配符读取匹配格式的所有文件?

如何用Directory.GetFiles获取带通配符路径的文件?

嘿,这个场景太常见了!当你输入的路径是out/path/*.csv这种带通配符的格式时,不用自己写匹配逻辑,Directory.GetFiles本身就支持通配符搜索,只需要把目录路径和**搜索模式(也就是带通配符的文件名)**分开传入对应的参数就行,给你两种实用的方法:

方法1:手动拆分路径和通配符

如果你明确知道输入的结构,直接把目录和通配符拆出来,分别作为Directory.GetFiles的第一个和第二个参数:

using System.IO;

// 直接指定目录和csv通配符
string[] csvFiles = Directory.GetFiles(@"out/path/", "*.csv");

这个方法简单直接,适合固定路径的场景。

方法2:自动拆分动态输入的路径

如果你的路径是用户输入或者动态生成的(比如不确定通配符的位置),可以用Path类的方法自动拆分目录和文件名(通配符部分),这样更灵活:

using System.IO;

string inputPath = @"out/path/*.csv";
// 提取目录部分
string targetDirectory = Path.GetDirectoryName(inputPath);
// 提取带通配符的搜索模式
string searchPattern = Path.GetFileName(inputPath);

// 获取所有匹配的csv文件
string[] csvFiles = Directory.GetFiles(targetDirectory, searchPattern);

额外技巧:搜索子目录

如果需要连同子目录里的csv文件一起获取,可以加上第三个参数SearchOption.AllDirectories:

string[] allCsvFilesIncludingSubdirs = Directory.GetFiles(
    targetDirectory, 
    searchPattern, 
    SearchOption.AllDirectories
);

需要注意的是,确保你的程序有对应目录的访问权限,否则会抛出权限异常哦。

内容的提问来源于stack exchange,提问作者jasodjas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:16:26