Files
Toolkit2/Toolkit.Avalonia/FileProvider.cs
T
TheXamlGuy 93c7a43ab4 Codemaid
2024-07-17 21:43:58 +01:00

31 lines
972 B
C#

using Avalonia.Controls;
using Avalonia.Platform.Storage;
using Toolkit.Foundation;
namespace Toolkit.Avalonia;
public class FileProvider(ITopLevelProvider topLevelProvider) :
IFileProvider
{
public async Task<IReadOnlyCollection<string>> SelectFiles(FileFilter filter)
{
if (topLevelProvider.Get() is TopLevel topLevel)
{
IReadOnlyList<IStorageFile> storageFiles = await topLevel.StorageProvider.OpenFilePickerAsync(new FilePickerOpenOptions()
{
AllowMultiple = filter.AllowMultiple,
FileTypeFilter = new List<FilePickerFileType>
{
new(filter.Name)
{
Patterns = filter.Extensions.Select(x => $"*.{x}").ToList()
}
}
});
return storageFiles.Select(file => file.Path.LocalPath).ToList();
}
return Array.Empty<string>();
}
}