gpt4 book ai didi

c# - 特定扩展名的 Directory.GetFiles

转载 作者:IT王子 更新时间:2023-10-29 03:51:34 32 4
gpt4 key购买 nike

有没有办法简化这个 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).TrimStart(".").ToLowerInvariant()));

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

关于c# - 特定扩展名的 Directory.GetFiles,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13301053/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com