我有一个Xamarin UWP应用,正在尝试从当前用户的“文档”库中加载文件。
我了解我需要首先添加文件类型关联声明。我已经完成此操作,文件图标已更改为我的应用程序图标。
然后在应用程序中,我从这里开始使用FilePicker插件...
https://github.com/ArtjomP/FilePicker-Plugin-for-Xamarin-and-Windows
FileData file = await CrossFilePicker.Current.PickFile();
Byte[] data = file.DataArray;
我要做的就是浏览并选择文件,但是应用程序崩溃,并在第二行显示访问冲突。
我已在我的UWP清单中添加了以下功能,不确定它们是否与事件相关。
<uap:Capability Name="documentsLibrary" />
<uap:Capability Name="removableStorage" />
如何打开文件?理想情况下,我需要使用一个方便的位置,例如文档库。
尼克。
编辑:
我已经关注了这篇文章,但仍然没有喜悦。
https://www.pmichaels.net/2016/11/11/uwp-accessing-documents-library/
答案 0 :(得分:2)
编辑:为了清楚起见,我改写了答案,以避免@MickyD在注释中正确指出的某些含义,我也不同意这些含义:
这似乎是程序包中的错误,因为根据其文档无法正常工作,可能要做的一件事情是将问题提交给GitHub,以便由程序包开发人员解决该错误。
另一件事可能是寻找替代方案。您可能会尝试找到其他类似的程序包,看看它们是否有效,我确定可行的替代方法是使用System.Windows.Storage
中的本机函数(已得到官方支持)。
答案 1 :(得分:2)
您使用的旧软件包很可能不再受支持。
尝试这个https://github.com/jfversluis/FilePicker-Plugin-for-Xamarin-and-Windows
这很简单,还支持UWP。
样品用量
try
{
FileData fileData = await CrossFilePicker.Current.PickFile();
if (fileData == null)
return; // user canceled file picking
string fileName = fileData.FileName;
string contents = System.Text.Encoding.UTF8.GetString(fileData.DataArray);
System.Console.WriteLine("File name chosen: " + fileName);
System.Console.WriteLine("File data: " + contents);
}
catch (Exception ex)
{
System.Console.WriteLine("Exception choosing file: " + ex.ToString());
}