如何在GetFiles中使用多个关键字获取文件计数



我想在某些文件夹中展示有多少个具有特定扩展名(JPG,JPEG,PNG,PSD等(的文件。但也必须使用特定的关键字,例如" 10*"或" 1a*"。首先,我只用扩展名进行一些代码,然后在某些文件夹中获取文件计数。但是我尝试制作第二个代码,以获取具有特定名称和特定扩展名但困难的文件计数。

我尝试在getfiles之后添加"位置",但仍然无法添加错误。

这是第一个代码:

DirectoryInfo folder = new DirectoryInfo(@"" + folderpath );
string extension = "jpg";
int count = folder.GetFiles("*." + extension, SearchOption.TopDirectoryOnly).Length;

以及以关键字和扩展名的第二个代码:

DirectoryInfo folder = new DirectoryInfo(@"" + folderpath );
string extension = "jpg";
string keyword = "1A";
int count = folder.GetFiles( keyword + "*", SearchOption.TopDirectoryOnly).Where(s => s.EndsWith("." + format )).Count;

结果仍然错误。我需要更改什么才能使代码使用关键字和扩展名正确工作?

您只需使用linq:

来完成所有操作
string[] prefixes = new[] { "10", "1A" };
string[] suffixes = new[] { "jpg", "jpeg", "png", "psd" };
int count = folder.GetFiles().Count(f => prefixes.Any(p => f.Name.StartsWith(p)) && suffixes.Any(s => f.Extension == s));

最新更新