/
githubmirror
/
Files
Обзор
Документация
Войти
/
githubmirror
/
Files
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Files.App/Data/Contracts/ImagingService.cs
43 строки
1 KB
Yair
Code Quality: Harden thumbnail path icon loading against null inputs
17 апр 2026, 20:35
17 апр 2026, 20:35
632f831
Код
Авторство
О чём код?
// Copyright (c) Files Community // Licensed under the MIT License. using Files.Shared.Utils; using Microsoft.Extensions.Logging; using Windows.Storage.FileProperties; namespace Files.App.Data.Contracts { internal sealed class ImagingService : IImageService { /// <inheritdoc/> public async Task<IImage?> GetIconAsync(IStorable storable, CancellationToken cancellationToken) { var iconData = await FileThumbnailHelper.GetIconAsync(storable.Id, Constants.ShellIconSizes.Small, storable is IFolder, IconOptions.ReturnIconOnly | IconOptions.UseCurrentScale); if (iconData is null) return null; var bitmapImage = await iconData.ToBitmapAsync(); return bitmapImage is null ? null : new BitmapImageModel(bitmapImage); } public async Task<IImage?> GetImageModelFromDataAsync(byte[]? rawData) { return new BitmapImageModel(await BitmapHelper.ToBitmapAsync(rawData)); } public async Task<IImage?> GetImageModelFromPathAsync(string filePath, uint thumbnailSize = 64) { try { if (await FileThumbnailHelper.LoadIconFromPathAsync(filePath, thumbnailSize, ThumbnailMode.ListView, ThumbnailOptions.ResizeThumbnail) is byte[] imageBuffer) return await GetImageModelFromDataAsync(imageBuffer); } catch (Exception ex) { App.Logger.LogDebug(ex, "Failed to load image model from path."); } return null; } } }