Как открыть файл, используя путь внутри выбранного пользователем файла в изолированном приложении - PullRequest
3 голосов
/ 09 мая 2019

Я пытаюсь записать импорт стороннего формата файла в мое изолированное приложение macOS. Файл, который открывает пользователь, представляет собой документ Json, а внутри этого документа находится URL-адрес, указывающий на некоторые необходимые внешние файлы данных. В этом случае это относительный путь к локальному файлу двоичных данных. Я могу создать абсолютный путь к этому файлу, но не могу открыть его с помощью [NSData datawithcontentsoffile: path], потому что мое приложение помещено в «песочницу» (в MacOS App Store). Если я отключу песочницу, я могу открыть внешний двоичный файл.

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

Ответы [ 2 ]

0 голосов
/ 21 мая 2019

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

0 голосов
/ 20 мая 2019

Существует только одно различие между приложением в изолированной программной среде, и я не могу об этом думать - если приложение помещено в изолированную программную среду, то домашний каталог указывает на изолированную программную среду приложения, в противном случае он указывает на домашний каталог пользователя в файловой системе.Поэтому при создании пути к файлу рассмотрите возможность использования URLsForDirectory: inDomains: метода класса NSFileManager, возвращающего местоположение каталога.

...