gpt4 book ai didi

Xamarin.Forms 目录选取器

转载 作者:行者123 更新时间:2023-12-05 03:59:13 26 4
gpt4 key购买 nike

我想在用户选择的文件夹中保存一个文件,这就是为什么我想向用户提供一个目录列表,用户将能够选择他想要导出数据的目录。不幸的是,我找不到目录/文件夹选择器的任何示例,我只是找到了一个对我没用的文件选择器。

https://github.com/jfversluis/FilePicker-Plugin-for-Xamarin-and-Windows

有没有为 Xamarin.Forms 选择文件夹的组件?实际上我只是在为 Android 做,但我们使用 Xamarin.forms

最佳答案

我想不出。使用 netstandard,一切都变得更加简单,因为您可以使用经典的 c# File api 来获取文件夹。

您只需要知道特殊文件夹和 android 文件夹之间的映射(例如):

System.Environment.SpecialFolder    Path
ApplicationData INTERNAL_STORAGE/.config
Desktop INTERNAL_STORAGE/Desktop
LocalApplicationData INTERNAL_STORAGE/.local/share
MyDocuments INTERNAL_STORAGE
MyMusic INTERNAL_STORAGE/Music
MyPictures INTERNAL_STORAGE/Pictures
MyVideos INTERNAL_STORAGE/Videos
Personal INTERNAL_STORAGE

来源:https://learn.microsoft.com/en-US/xamarin/android/platform/files/

同样适用于 ios:

https://learn.microsoft.com/en-US/xamarin/ios/app-fundamentals/file-system

但是实现起来真的很简单,只需要枚举所有的文件夹,然后显示在一个ListView中即可。

编辑:关于实现的更多细节。

其实你想编写一个“目录浏览器”,很简单,这里是概念。

  • 你有一个 ListView在你的Page
  • 你有一个 Cancel按钮和一个 Select在你的按钮 Page
  • 你有一个 CurrentPath在你的ViewModel
  • 您绑定(bind) CurrentPathTitle页面的
  • 你有一个 List<DirectoryViewModel> Directories在你的ViewModel

每次用户点击列表中的项目时:

  • 您在当前路径中添加目录名称
  • 您从新路径获取所有目录,并更新您的 Directories 属性(不要忘记 RaisePropertyChange(nameof(Directories)) )
  • ListView将相应更新

每次回来:

  • 您删除当前路径的最后一部分
  • 和以前一样

如果你到达根路径“/”,点击返回时你什么都不做。

哦,你可以用这个 Grid组件而不是 ListView , 会更好 ;)

https://github.com/roubachof/Sharpnado.Presentation.Forms#grid-Layout

关于Xamarin.Forms 目录选取器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57408336/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com