【发布时间】:2020-03-14 06:33:27
【问题描述】:
我正在尝试获取所有符合特定模式的文件。文件名由 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 的那些文件。
我是误用了“*”通配符还是我在这里做错了什么?
【问题讨论】:
-
坦率地说,这看起来像是一个框架错误。不要这样做,而是在整个文件列表上使用 Linq 来获取您想要的子集。您可以 String.Split() 使用下划线作为分隔符的文件名来获取 Z。
标签: c# regex file search directory