某些扩展名的Directory.GetFiles

有没有一种方法可以简化此linq表达式,或者有更好的方法可以做到这一点?

Directory.GetFiles(dir, "*.*", SearchOption.AllDirectories)

.Where(s => s.EndsWith(".jpg", StringComparison.OrdinalIgnoreCase) ||

s.EndsWith(".gif", StringComparison.OrdinalIgnoreCase) ||

s.EndsWith(".png", StringComparison.OrdinalIgnoreCase) ||

...);

基本上,我想返回某个扩展名的所有文件。不幸的是,这种方法不是很灵活。我希望能够将扩展名添加到列表中,并让Directory.GetFiles返回这些扩展名。那可能吗?

回答:

如果要在LINQ中进行过滤,可以这样进行:

var ext = new List<string> { "jpg", "gif", "png" };

var myFiles = Directory

.EnumerateFiles(dir, "*.*", SearchOption.AllDirectories)

.Where(s => ext.Contains(Path.GetExtension(s).ToLowerInvariant()));

现在ext包含允许的扩展列表;您可以根据需要添加或删除项目以进行灵活过滤。

以上是 某些扩展名的Directory.GetFiles 的全部内容, 来源链接: utcz.com/qa/412980.html

回到顶部