1

回答完这个问题后,我看了很多问题。

我如何找到一个目录中是否存在至少一个(如果你给我数量更好)与某个正则表达式匹配的文件?

我知道我可以用这个答案循环目录中的文件

但是有一种不循环计数的方法吗?

我尝试使用 count() 但这不起作用

4

3 回答 3

3

取自您链接的问题/答案,这应该有效:

int count = Directory.GetFiles(@"c:\temp").Count(path => Regex.IsMatch(path, pattern));
于 2013-09-24T15:52:40.920 回答
2

通过使用 Directory.GetFiles 方法返回的数组的 Length 属性,您可以在没有底部 foreach 循环的情况下获取它们。

int count = matches.Length;

http://msdn.microsoft.com/en-us/library/system.array.length.aspx

于 2013-09-24T15:53:45.023 回答
1

如果模式很简单,那么目录中的 GetFiles 已经在不使用 RegEx 的情况下提供了信息。

int count = Directory.GetFiles(@"c:\", "*.txt", SearchOption.AllDirectories).Count();
于 2015-06-26T04:30:09.767 回答