Как Xamarin.Essentials работает с папкой «Документы» iOS?

Я следовал инструкциям «для создания мобильных приложений. с Xamarin.Forms ». На странице «хранить локальные данные с помощью SQLite в приложение Xamarin.Forms », они говорят, что iOS предоставляет две папки для работы с файлами, сохраненными на устройстве:

  • папка Документы - только для данных, созданных пользователями.
  • папка Библиотека для данных, созданных приложением.

Затем представлен этот подраздел:

введите описание изображения здесь

Я не понимаю: это правильный способ работать с папкой iOS Documents? Я спрашиваю об этом, потому что они явно говорят, что libFolder содержит соответствующее расположение библиотеки. Как насчет папки Документы, требуемой правилами Apple?


person Pine Code    schedule 03.01.2021    source источник


Ответы (1)


Подробная информация о различных целях папок в iOS представлена ​​в этот документ:

Документы: /

Используйте этот каталог для хранения пользовательских документов и файлов данных приложений.

Содержимое этого каталога может быть доступно пользователю через общий доступ к файлам iTunes (хотя по умолчанию это отключено). Добавьте логический ключ UIFileSharingEnabled в файл Info.plist, чтобы пользователи могли получить доступ к этим файлам.

Даже если приложение не сразу включает общий доступ к файлам, вам следует избегать размещения в этом каталоге файлов, которые должны быть скрыты от пользователей (например, файлов базы данных, если вы не собираетесь делиться ими). Пока конфиденциальные файлы остаются скрытыми, эти файлы не будут отображаться (и потенциально перемещаться, изменяться или удаляться iTunes), если общий доступ к файлам будет включен в будущей версии.

Вы можете использовать метод Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments), чтобы получить путь к каталогу документов для вашего приложения.

Содержимое этого каталога поддерживается iTunes.

Библиотека /:

Каталог библиотеки - хорошее место для хранения файлов, которые не созданы непосредственно пользователем, например, баз данных или других файлов, созданных приложением. Содержимое этого каталога никогда не открывается пользователю через iTunes.

Вы можете создавать свои собственные подкаталоги в Библиотеке; однако здесь уже есть некоторые каталоги, созданные системой, о которых вам следует знать, включая Preferences и Cache.

Содержимое этого каталога (за исключением подкаталога Caches) копируется iTunes. Пользовательские каталоги, которые вы создаете в библиотеке, будут зарезервированы.

Пожалуйста, прочтите документ и не стесняйтесь спрашивать, есть ли у вас другие проблемы.

Обновить

чтобы получить доступ к ответу на обновление:

iOS:

string docFolder = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
string libFolder = System.IO.Path.Combine(docFolder, "..", "Library");

Android:

string path = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
person Jack Hua    schedule 04.01.2021
comment
Спасибо за ответ, но я все еще не нашел ответа на свой вопрос. На момент чтения я помещаю файлы, созданные пользователями, в папку Documents, но до сих пор не могу понять, как Xamarin.Essentials с этим справляется. - person Pine Code; 04.01.2021
comment
Раздел, который вы читаете, посвящен Sqlite, и Xamarin рекомендует хранить Sqlite в папке библиотеки. Xamarin.Essentials позволяет быстро получить доступ к папке библиотеки. Xamarin.Essentials не дает вам быстрого доступа к папке с документами. Если вы хотите получить доступ к папке с документами, см. Мой обновленный ответ. - person Jack Hua; 05.01.2021