Xamarin.Forms 如何使用 FilePicker 过滤 SQLite3 文件

How to filter SQLite3 files using FilePicker in Xamarin.Forms

我正在尝试使用 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 class 获取 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 类型上找到的信息:

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

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

尝试“application/octet-stream”。它对我有用。