在 Xamarin.Forms 中存储应用程序数据的最佳 Environment.SpecialFolder 是啥?

Posted

技术标签:

【中文标题】在 Xamarin.Forms 中存储应用程序数据的最佳 Environment.SpecialFolder 是啥?【英文标题】:What is the best Environment.SpecialFolder for store application data in Xamarin.Forms?在 Xamarin.Forms 中存储应用程序数据的最佳 Environment.SpecialFolder 是什么? 【发布时间】:2017-11-11 11:30:25 【问题描述】:

我是 Xamarin.Forms 和移动开发的新手。我想将我的应用程序用户的用户和加密密码存储在移动设备上的文件中。我正在使用 xamarin 表单技术。我知道有很多不同的文件夹。例如:

System.Environment.SpecialFolder.Personal
System.Environment.SpecialFolder.LocalApplicationData
System.Environment.SpecialFolder.MyDocuments

您可以在此处找到完整列表:https://msdn.microsoft.com/en-gb/en-enl/library/system.environment.specialfolder(v=vs.110).aspx

商店最好的文件夹/目录是什么:

用户和密码数据 其他应用程序特定数据

??

编辑:我发现“个人”对我有好处,但如果您有其他答案也可以发布。 SpecialFolder.Personal location

【问题讨论】:

【参考方案1】:

存储小的键值对:

Xamarin.Forms 实现 Application.Current.Properties,它将键值数据存储在应用程序的本地存储中,并且只有存储它们的应用程序才能安全地访问这些键值对。

存储文档/数据库(Sqlite):

每个平台都有自己的文件夹结构来存储应用特定的数据/文件。

安卓

Environment.SpecialFolder.Personal & MyDocuments 都映射到:/data/data/@PACKAGE_NAME@/files

Environment.SpecialFolder.LocalApplicationData 映射到:/data/data/@PACKAGE_NAME@/files/.local/share

我们可以根据文件在文件系统中的映射方式将文件存储在上述任何目录中。 以上目录都不能被其他应用访问,除非手机root,否则用户在世界之外也不能访问。

iOS

Environment.SpecialFolder.Personal, LocalApplicationData & MyDocuments全部映射到:/Documents

ios 有以下目录结构:

/Documents
/Library
/Library/Application Support
/Library/Caches
/tmp

/Documents: 如果在应用程序中的info.plist 中打开了 iTunes 共享,则在 iTunes 中可见。内容可以通过iTunes/iCloud备份。

/Library:iTunes 中不可见。可通过iTunes/iCloud 备份,Caches 目录除外。

不需要向用户公开的文件/数据应存储在库目录中。前任。数据库文件。我会去Library 目录添加安全性和加密(如果需要)。

要到达图书馆路径:

Path.Combine(Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments), "..", "Library");

了解更多关于每个枚举与目录Go Here 的映射。

查找有关 iOS 的基础知识File System Basics。

【讨论】:

使用 Environment.SpecialFolder.Resources 将文件保存到 /Library

以上是关于在 Xamarin.Forms 中存储应用程序数据的最佳 Environment.SpecialFolder 是啥?的主要内容,如果未能解决你的问题,请参考以下文章

访问Xamarin Forms iOS应用程序中的共享存储位置

有人可以通过Xamarin.Forms和UI数据绑定提供有关Realm数据存储库的示例吗?

在 Xamarin.Forms MvvmCross 中存储视图

Xamarin Forms:在 Android 设备的内部存储中写入文件

Xamarin.Forms 将文件 (pdf) 保存在本地存储中并使用默认查看器打开

最新 iOS 更新 (12.2) 后,本地存储中的视频未在 WebView (Xamarin.Forms) 中播放