Отображение имен папок из UIDocumentPickerViewController - PullRequest
0 голосов
/ 13 июля 2020

Я использую UIDocumentPickerViewController, чтобы пользователь мог выбрать папку для сохранения текстового файла. Все работает, за исключением возможности отобразить сообщение, подтверждающее местоположение сохраненного файла.

На снимке экрана показан типичный список папок, отображаемых UIDocumentPickerViewController, которые пользователь может выбрать:

UIDocumentPickerViewController

Имена папок, отображаемые пользователю, соответствуют ожидаемым. Однако URL-адреса, возвращаемые UIDocumentPickerViewController, отличаются от отображаемых и не подходят для использования в подтверждающем сообщении:

.../data/Library/Mobile Documents/com~apple~CloudDocs
.../data/Library/Mobile Documents/com~apple~CloudDocs/Desktop
.../data/Library/Mobile Documents/com~apple~CloudDocs/Documents
.../data/Library/Mobile Documents/3L68KQB4HG~com~readdle~CommonDocuments/Documents
.../data/Library/Mobile Documents/com~apple~CloudDocs/Downloads
.../data/Library/Mobile Documents/iCloud~net~jermware~gjLists/Documents
.../data/Library/Mobile Documents/iCloud~is~workflow~my~workflows/Documents
.../data/Containers/Shared/AppGroup/EB502BF4-9272-466F-9F5D-0CA97E35E687/File Provider Storage

В некоторых URL-адресах я мог бы использовать только последний компонент пути, например Рабочий стол , Документы , Загрузки , но для некоторых это второй компонент пути после последнего, например gjLists , а для других путь совершенно другой, например Documents by Readdle , Ярлыки и На моем iPhone.

Это делает очень трудным / невозможным надежный синтаксический анализ URL для извлечения папка, отображаемая пользователю UIDocumentPickerViewController.

После некоторого расследования я обнаружил FileManager.default.displayName API, который возвращает отображаемое имя файла или каталога по указанному пути.

Это улучшает несколько вещей, давая следующие имена папок для вышеуказанных URL-адресов:

iCloud Drive
iCloud Drive
iCloud Drive
Documents by Readdle
Downloads
gjLists
Shortcuts
File Provider Storage

Теперь у меня есть правильные имена для Documents by Readdle , Downloads , gjLists и Shortcu ts , но только iCloud Drive для Desktop и документов и еще «Хранилище поставщика файлов» для 'Вкл. Мой телефон '.

Кто-нибудь знает, как, учитывая URL-адреса, возвращаемые UIDocumentPickerViewController, я могу получить имя папки, отображаемое в средстве выбора? Отображение подтверждающего сообщения пользователю о том, что файл был успешно сохранен в папке 'File Provider Storage' , а не 'On My iPhone' , не вызовет никакой путаницы. .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...