如何在C#中获取所有符合搜索模式的文件?

我正在尝试获取符合特定模式的所有文件。文件名由3个元素组成,我将它们分别称为x,y和z(都是数字)。

X通常为5位数字。 Y通常为1位数长。 Z的最大长度为2位数。

在此示例中,x = 65986,y = 1。

我想获取所有适合此模式的文件:“ 65986_1_Z.csv”,其中Z可以是1到100之间的任何数字(不包括)。

这是我目前拥有的:

FileInfo[] files = di.GetFiles(x + '_' + y + "_*.csv");

这有点奏效,因为我可以获取所有文件,从65986_1_1.csv到65986_1_9.csv,但是一旦最终值变为10或更大,此搜索模式就不会返回z> 10的那些文件。

我误用了'*'通配符还是在这里做错了其他事情?

alishar 回答:如何在C#中获取所有符合搜索模式的文件?

如果接受使用RegEx,请考虑以下事项:

var dir = @"YourDir";
var pat = @"(\d{5}_)(\d{1}_)(\d{1,3}).csv$";
var q = from f in Directory.EnumerateFiles(dir,"*",SearchOption.AllDirectories)
        where Regex.IsMatch(f,pat)
        select f;
q.ToList().ForEach(f => Console.WriteLine(f));

您可以评估RegEx模式here

祝你好运。

本文链接:https://www.f2er.com/3078135.html

大家都在问