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
相关产品推荐
相关产品推荐

