如何在Xamarin.Forms中使用FilePicker筛选SQLite3文件

问题描述

我正在尝试使用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类型的信息:

解决方法

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

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

,

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...