Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何计算目录中文件的匹配数_C#_Regex_File - Fatal编程技术网

C# 如何计算目录中文件的匹配数

C# 如何计算目录中文件的匹配数,c#,regex,file,C#,Regex,File,回答这个问题后,我想问很多问题 我如何找到一个目录中是否至少存在一个(如果您提供与某个正则表达式匹配的文件数,则更好) 我知道我可以循环目录中的文件 但是有一种不循环计数的方法吗 我尝试使用count(),但这不起作用从链接的问题/答案中获取,这应该起作用: int count = Directory.GetFiles(@"c:\temp").Count(path => Regex.IsMatch(path, pattern)); 从您的链接问题/答案中提取,这应该有效: int cou

回答这个问题后,我想问很多问题

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

我知道我可以循环目录中的文件

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


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

从链接的问题/答案中获取,这应该起作用:

int count = Directory.GetFiles(@"c:\temp").Count(path => Regex.IsMatch(path, pattern));

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

int count = Directory.GetFiles(@"c:\temp").Count(path => Regex.IsMatch(path, pattern));

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

int count = matches.Length;

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

int count = matches.Length;

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

int count = Directory.GetFiles(@"c:\", "*.txt", SearchOption.AllDirectories).Count();

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

int count = Directory.GetFiles(@"c:\", "*.txt", SearchOption.AllDirectories).Count();

不,您必须获取列表中的文件,然后使用正则表达式模式进行匹配。where子句将被过滤。您有大量文件吗?没有,您必须获取列表中的文件,然后使用regex模式进行匹配。where子句将被过滤。你有大量的文件吗?你正在用正则表达式匹配路径。我想它应该是
regex.Match(File.ReadAllText(path),pattern)
注意你也可以使用一个方便的快捷方式:
regex.Match(path,pattern)。成功
可以用
regex.IsMatch(path,pattern)
,它直接返回一个
bool
。您正在将路径与regex匹配。我想它应该是
regex.Match(File.ReadAllText(path),pattern)
注意,您还可以使用一个方便的快捷方法:
regex.Match(path,pattern)。成功
可以替换为
regex.IsMatch(path,pattern)
,它直接返回一个
bool