.NET MAUI如何获取并显示设备中的近期图片列表?
获取设备近期图片列表的正确方法
你的代码无法运行的核心问题是:Directory.GetFiles 不支持用 | 分隔多个文件后缀的搜索模式,这种写法是无效的。要实现获取近期图片列表的需求,可以按以下步骤调整代码:
- 分别获取不同格式的图片文件
- 合并文件列表后按修改时间排序(最新的在前)
- 可选:筛选出指定数量的近期图片
修正后的代码示例
using System.IO; using System.Linq; var directoryPath = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures); // 分别获取jpg和png格式的文件路径 var jpgFiles = Directory.GetFiles(directoryPath, "*.jpg", SearchOption.TopDirectoryOnly); var pngFiles = Directory.GetFiles(directoryPath, "*.png", SearchOption.TopDirectoryOnly); // 合并列表并按修改时间倒序排序,取前20个近期图片 var recentImages = jpgFiles.Concat(pngFiles) .Select(filePath => new FileInfo(filePath)) .OrderByDescending(file => file.LastWriteTime) .Take(20) .Select(file => file.FullName) .ToArray();
补充说明
- 如果需要搜索子目录中的图片,将
SearchOption.TopDirectoryOnly替换为SearchOption.AllDirectories即可,但注意部分系统目录可能存在访问权限限制,建议添加异常处理。 LastWriteTime代表文件最后修改的时间,如果你需要按创建时间排序,可替换为CreationTime。- 若要支持更多图片格式(如bmp、gif),只需新增对应格式的
Directory.GetFiles调用并合并到列表中。
内容的提问来源于stack exchange,提问作者DanFlakes
相关产品推荐
相关产品推荐

