【问题标题】:How to filter SQLite3 files using FilePicker in Xamarin.Forms如何在 Xamarin.Forms 中使用 FilePicker 过滤 SQLite3 文件
【发布时间】:2021-01-12 22:19:27
【问题描述】:

我正在尝试使用 Xamarin.Forms 中的 FilePicker 过滤文件。具体来说,SQLite 的 .db3 文件。为了在 Android 中过滤文件,您应该提供要显示的文件的 FilePicker MIME 类型。这就是我所做的,基于我发现 SQLite 文件具有的 MIME 类型:

var fileTypes = new string[] { "application/x-sqlite3", "application/vnd.sqlite3" };
var file = await CrossFilePicker.Current.PickFile(fileTypes);

我也尝试将"application/db3""application/db" 放入fileTypes 数组中,但无济于事。 我唯一一次可以过滤 SQLite 文件以及其他一些文件,是我将 "application/*" 放入数组时,这意味着 MIME 类型是应用程序。

这些 MIME 类型对我不起作用。我也尝试过使用 Xamarin 的 Android.Webkit.MimeTypeMap 类获取 MIME 类型,如下所示:

var MIME =  MimeTypeMap.Singleton;
string sqliteMIME = MIME.GetMimeTypeFromExtension("sqlite");

我尝试将"sqltie3""sqltie""db3""db""db0" 传递给函数调用,函数每次都返回null


FilePicker 的 Github 仓库:https://github.com/jfversluis/FilePicker-Plugin-for-Xamarin-and-Windows

我在 SQLite 的 MIME 类型上找到的信息:

【问题讨论】:

  • 查看application/pdf 是否返回pdf(反之亦然)和text/x-java 是否返回java。如果那些从GetMimeTypeFromExtension 等正确返回,但是像png 这样常见的东西不会返回image/pngpng 不包含在基本 ASOP mime 提供程序中),那么听起来设备是使用库存 ASOP 而不是通过SetDefaultSupplier 提供 mime 类型供应商,如果是这样,我想知道您使用的是什么设备????
  • 我尝试过使用模拟 Pixel 3a [Android 9.0 - API28]、物理 Pixel 3a [Android 11.0 - API30] 和物理小米 Mi A1 [Android 9.0 - API28]。除了小米,一切都与pdfjavapngcsv 文件类型完美配合。小米无法过滤java文件。
  • @E.Epstein 我检查了 MIME 类型的源代码。没有 db mime 类型。你可以参考下面的链接。 android.googlesource.com/platform/libcore/+/android-cts-6.0_r26/…
  • @WendyZang-MSFT,我明白了。那么有没有办法在 SQLite 文件中进行过滤呢?
  • 您可以使用FileName 进行过滤。尝试使用result.FileName.EndsWith("db", StringComparison.OrdinalIgnoreCase) 过滤。请检查链接。 docs.microsoft.com/en-us/xamarin/essentials/…

标签: sqlite xamarin filter mime-types filepicker


【解决方案1】:

尝试“应用程序/八位字节流”。它对我有用。

【讨论】:

    【解决方案2】:

    您可以查看 MIME 类型的源代码。没有 db mime 类型。您可以参考下面的链接。

    https://android.googlesource.com/platform/libcore/+/android-cts-6.0_r26/luni/src/main/java/libcore/net/MimeUtils.java

    【讨论】:

      猜你喜欢
      • 2021-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-18
      相关资源
      最近更新 更多