我正在编写一个.Net Maui应用程序,它允许用户从他们的目录中 Select 一个文件,显示所选文件的文件路径,然后打开所选文件.问题是,在MacCatalyst上(我在Mac上工作),当文件目录打开供用户 Select 文件时,所有文件都呈灰色显示,无法 Select .以下是单击PickFileButton时的方法:

private async void PickFileButton_Clicked(object sender, EventArgs e)
        {
            try
            {
                //var result = await FilePicker.PickAsync();
                var result = await FilePicker.PickAsync(new PickOptions
                {
                    FileTypes = new FilePickerFileType(
                        new Dictionary<DevicePlatform, IEnumerable<string>>
                        {
                            { DevicePlatform.iOS, new[] { "public.item" } },
                            { DevicePlatform.Android, new[] { "*/*" } },
                            { DevicePlatform.WinUI, new[] { "*/*" } },
                            { DevicePlatform.MacCatalyst, new[] { "*/*" } }
                        })
                });

                if (result != null)
                {
                    filePath = result.FullPath;
                    await FilePathLabel.Dispatcher.DispatchAsync(() =>
                    {
                        FilePathLabel.Text = filePath;
                    });

                }
                
            }
            catch (Exception ex)
            {
                // Handle exception if file picker operation fails
                Console.WriteLine($"File picking failed: {ex.Message}");
            }
        }

我已经在Info.plist中将LSSupportsOpeningDocumentsInPlace和应用程序支持iTunes共享设置为真,以防这是导致问题的原因.当我注释掉DevicePlatform.MacCatalyst产品线时,它也不起作用.

推荐答案

我也有同样的问题.MacCatalyst的FilePicker存在错误,无法按预期工作.如果我没有指定文件类型,而只是try

var result = await FilePicker.PickAsync();

那么文件是可 Select 的;然而,由于FilePicker错误,文件并不总是被选中.这个问题应该在.NET8中修复.我希望在.NET7和其他错误修复中也能有相同的修复,这样我们就可以在Mac上使用FilePicker了.

这不是你一直遇到的问题,但这里有一些有用的信息,可以让你了解Net Maui FilePicker的情况.

https://github.com/dotnet/maui/issues/11088

https://github.com/dotnet/maui/issues/15126

Csharp相关问答推荐

如何在C#中使用并行主义将数据表转换为动态对象

Umbraco Lucene日期字段编码转换为.net日期时间

我如何才能获得被嘲笑班级的私有成员?

EF Core Fluent API中定义的多对多关系

AutoMapper -如何为两个不同的用例设置单个映射?

在依赖性注入和继承之间进行 Select

HttpContext. RequestAborted当Android APP失go 连接时未取消

使用客户端密钥为Fabric Rest API生成令牌

不仅仅是一个简单的自定义按钮

如何注销Microsoft帐户?

.NET 8 Web-API返回空列表

创建临时Collection 最有效的方法是什么?堆栈分配和集合表达式之间的区别?

从c#列表中删除额外的对象&对象&>从ASP.NET WebForm返回json响应

内部接口和类的DI解析

如何使用自定义负载均衡器管理Ocelot负载均衡器中的多线程和批读取

Swagger没有显示int?可以为空

ASP.NET Core MVC将值从视图传递到控制器时出现问题

WPF动态设置弹出窗口水平偏移

我可以强制System.Text.Json.JsonSerializer以非递归方式工作吗?

如何使用.NET Aspire从Blazor应用程序与GRPC API通信?