在 Xamarin 中,使用文件存储或打开某个特定文件都是很常用的做法,而在跨平台中,每个平台都有自己的 IO 的坑。如何在 Xamarin.Froms 里面让用户可以选择打开哪个本文文件,需要照顾多个不同的平台的文件访问方式
在 Xamarin.Forms 右击管理 NuGet 程序包,搜寻 Xamarin.Plugin.FilePicker 进行安装,或在 csproj 上添加下面代码
<PackageReference Include="Xamarin.Plugin.FilePicker" Version="2.1.36-beta" />
如果不是让用户选取文件内容,那么在 Xamarin.Essentials 这个提供了 Xamarin 原生 API 交互的库就完全足够使用了
在界面上添加一个按钮,用来让用户选取文件内容
<StackLayout>
<Label x:Name="FileText" Margin="10,10,10,10"></Label>
<Button HorizontalOptions="Center" Text="选取文件" Clicked="Button_OnClicked"></Button>
</StackLayout>
在后台代码添加按钮点击时让用户选择文件的代码
using Plugin.FilePicker;
private async void Button_OnClicked(object sender, EventArgs e)
{
var pickFile = await CrossFilePicker.Current.PickFile();
if (pickFile is null)
{
// 用户拒绝选择文件
}
else
{
FileText.Text = $@"选取文件路径 :{pickFile.FilePath}";
}
}
此时用户可以不选择文件,如果用户不选择文件,那么将拿到一个空值
现在 CrossFilePicker 的 Open 和 Save 方法都过时了,请使用 Xamarin.Essentials.FileSystem
代替,或者用 Xamarin.Essentials.ShareFile
将文件分享给其他应用打开
这个项目所有代码放在 github 欢迎小伙伴访问
我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新
如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入
如有不方便在博客评论的问题,可以加我 QQ 2844808902 交流
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。
来源:oschina
链接:https://my.oschina.net/u/4361381/blog/4315657