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

时间:2017-11-11 11:30:26

标签: c# xamarin mobile xamarin.forms file-storage

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

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

  • 用户和密码数据
  • 其他应用程序specyfic数据

...

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

1 个答案:

答案 0 :(得分:19)

存储小键值对:

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

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

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

<强>的Android

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

/DocumentsiTunes中显示如果在应用中的info.plist中启用了iTunes共享。内容可由iTunes/iCloud备份。

/Library iTunes中无法显示。除iTunes/iCloud目录外,Caches可以备份。

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

要进入图书馆路径:

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

了解有关目录Go Here的每个Enumeration映射的更多信息。

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