在 iOS 中使用 Xamarin.Essentials FilePicker,如何指定具有几个奇怪扩展名的 FileTypes?

问题描述

目前我只尝试在 iOS 中执行此操作,但我不知道到哪里查找如何描述 iOS 文件类型。这些是“纯文本”文件,但具有特定的奇怪扩展名。我尝试了“文本/纯文本”,但这并没有“点亮”我的 iOS 文件(但确实允许 .CSV 文件)。

这是我开始的代码...

private async void ButtonFMSPick_Clicked( object sender,EventArgs e ) {
    FilePickerFileType filePickerFileType = new FilePickerFileType(
        new Dictionary<DevicePlatform,IEnumerable<string>> {
                    { DevicePlatform.iOS,new [] { "*.ABC","*.123" } },{ DevicePlatform.Android,} );

    PickOptions pickOptions = new PickOptions {
        PickerTitle = "Select all the files",FileTypes = filePickerFileType,};
    var results = await FilePicker.PickMultipleAsync(pickOptions);
    if (results == null) {
        lblFileContents.Text = "Return NULL";
        return;
    }
    lblFileContents.Text = $"  {results.Count()} files picked\r\n";
    foreach (var res in results) {
        try {
            var stream = await res.OpenReadAsync();
            lblFileContents.Text += $"File Name: {res.FileName},len={stream.Length},path={res.FullPath}:\r\n";
        } catch (Exception ex) {
            lblFileContents.Text += $"Exception:  {ex}";
        }
    }
}

更新:我尝试了声明文件类型——摘自下面的 Info.plist,但我对此非常不确定。现在我看到带有我的应用程序图标的“.123”文件类型,但仍然无法选择

    <key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeName</key>
            <string>ABC FILE</string>
            <key>LSHandlerRank</key>
            <string>Default</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>com.pronktech.abc</string>
            </array>
        </dict>
        <dict>
            <key>CFBundleTypeName</key>
            <string>123 File</string>
            <key>LSHandlerRank</key>
            <string>Default</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>com.pronktech.123</string>
            </array>
        </dict>
    </array>
    <key>UTExportedTypeDeclarations</key>
    <array>
        <dict>
            <key>UTTypeDescription</key>
            <string>ABC FILE</string>
            <key>UTTypeIdentifier</key>
            <string>com.pronktech.abc</string>
            <key>UTTypeConformsTo</key>
            <array>
                <string>public.data</string>
            </array>
            <key>UTTypeTagSpecification</key>
            <dict>
                <key>public.filename-extension</key>
                <array>
                    <string>ABC</string>
                    <string>abc</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>UTTypeDescription</key>
            <string>123 File</string>
            <key>UTTypeIdentifier</key>
            <string>com.pronktech.123</string>
            <key>UTTypeConformsTo</key>
            <array>
                <string>public.data</string>
            </array>
            <key>UTTypeTagSpecification</key>
            <dict>
                <key>public.filename-extension</key>
                <array>
                    <string>123</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)