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

What is the best Environment.SpecialFolder for store application data in Xamarin.Forms?

我是 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

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

??

编辑:我发现 "Personal" 对我有好处,但如果您有其他答案,post 也一样。 SpecialFolder.Personal location

存储小键值对:

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

存储Documents/Database (Sqlite):

每个平台都有自己的文件夹结构,用于在下面存储特定应用 data/files。

Android:

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

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

我们可以根据文件在文件系统中的映射方式将文件存储在上述任何目录中。 以上目录中的 None 可以被其他应用程序访问,除非 phone 是 root。

iOS:

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

iOS 具有以下目录结构:

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

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

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

不需要暴露给用户的

Files/Data应该存放在Library目录下。前任。数据库文件。我会选择 Library 目录以增加安全性和加密(如果需要)。

前往图书馆路径:

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

了解每个枚举与目录 Go Here 的映射。

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