xamarin - Xamarin.Essentials 如何处理 iOS“文档”文件夹?
问题描述
我按照“<a href="https://docs.microsoft.com/en-us/learn/paths/build-mobile-apps-with-xamarin-forms/" rel="nofollow noreferrer">构建移动应用Xamarin.Forms”课程。在“<a href="https://docs.microsoft.com/en-us/learn/modules/store-local-data-with-sqlite/" rel="nofollow noreferrer">使用 SQLite 存储本地数据一个 Xamarin.Forms 应用程序”部分,他们说 iOS 提供了两个文件夹来处理保存在设备上的文件:
- Documents文件夹,仅用于用户生成的数据。
- Library文件夹,用于存放应用程序生成的数据。
然后,介绍本小节:
我不明白的是:这是处理 iOS Documents文件夹的正确方法吗?我问这个是因为他们明确说libFolder
包含适当的库位置。Apple 指南要求的Documents文件夹呢?
解决方案
在本文档中有关于 iOS 中文件夹的不同用途的详细信息:
文件:/
使用此目录来存储用户文档和应用程序数据文件。
该目录的内容可以通过 iTunes 文件共享提供给用户(尽管默认情况下禁用)。将 UIFileSharingEnabled 布尔键添加到 Info.plist 文件以允许用户访问这些文件。
即使应用程序没有立即启用文件共享,您也应该避免将应该对用户隐藏的文件(例如数据库文件,除非您打算共享它们)放置在此目录中。只要敏感文件保持隐藏状态,如果在未来版本中启用文件共享,这些文件就不会被公开(并且可能被 iTunes 移动、修改或删除)。
您可以使用 Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments) 方法获取应用程序的 Documents 目录的路径。
此目录的内容由 iTunes 备份。
图书馆/:
Library 目录是存储不是由用户直接创建的文件的好地方,例如数据库或其他应用程序生成的文件。这个目录的内容永远不会通过 iTunes 暴露给用户。
您可以在库中创建自己的子目录;但是,这里已经有一些您应该注意的系统创建的目录,包括 Preferences 和 Caches。
此目录的内容(Caches 子目录除外)由 iTunes 备份。您在库中创建的自定义目录将被备份。
请阅读文档并随时询问您是否有其他问题。
更新
访问更新答案:
IOS:
string docFolder = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
string libFolder = System.IO.Path.Combine(docFolder, "..", "Library");
安卓:
string path = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
推荐阅读
- flutter - Flutter - 如何为 BottomNavigationBar 添加分隔符?
- apache-spark - 将 apache spark rdd 写入多个 s3 文件夹
- javascript - 更改嵌套函数中的变量
- python - 如何使用 TextBlob 对整个 pandas 数据框列进行单数化和词形化?
- javascript - 我的基本 w3.includeHTML() 在我的 PC 服务器上执行的基本测试中不包含任何内容
- javascript - 检查显示是否支持 JavaScript 中的 HDR(高动态范围)颜色?
- java - 14:08:31.741 [main] 调试 org.springframework.web.client.RestTemplate - 响应 415 UNSUPPORTED_MEDIA_TYPE
- kubernetes - Prometheus:监控外部 K8s 集群的更好选择
- java - 如何在递归中避免 StackOverFlow?
- swift - 从 Sonos 回调 URL 将实时 json 数据发送到 Swift IOS 应用程序以获取订阅事件