某些扩展名的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