使用c# GetFiles Length,但只计算文件名中含有一定数量字符的文件
本文关键字:字符 文件 中含有 文件名 Length GetFiles 计算 使用 | 更新日期: 2023-09-27 18:14:06
所以我用的是简单的
ImgFilesCount = ImgDirInfo.GetFiles("*.jpg").Length;
来计算一个目录中有多少个文件。但是我需要它只计算文件名中恰好有26个字符的文件。我试着
ImgFilesCount = ImgDirInfo.GetFiles("?????????????????????????.jpg").Length;
但它没有工作。唯一的选择是执行foreach循环并检查每个文件名并增加计数器吗?我有一种感觉linq可能可以用。where语句做到这一点,但我不知道linq。
可能
int count = ImgDirInfo.EnumerateFiles("*.jpg").Count(f => f.Name.Length == 26);
EnumerateFiles
更有效,因为它不需要在开始处理之前将所有文件加载到内存中。
- 当您使用EnumerateFiles时,您可以在返回整个集合之前开始枚举FileInfo对象的集合。
- 当你使用GetFiles时,你必须等待整个FileInfo对象数组返回,然后才能访问该数组。
ImgFilesCount = ImgDirInfo.GetFiles("*.jpg")
.Where(file => file.Name.Length == 26)
.Count();
像这样?
string[] files = Directory
.EnumerateFiles(@"c:'Users'x074'Downloads" , "*.jpg" , SearchOption.AllDirectories )
.Where( path => Path.GetFileName(path).Length > 20 )
.ToArray()
;