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

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

Например, у меня есть файл abc.png, который хранится в песочнице как obfuscated.png.

Когда я открываю этот файл в другом приложении с помощью UIDocumentInteractionController, я бы хотел, чтобы другой файл открывал файл с именем abc.png.

В настоящее время другое приложение открывает файл как obfuscated.png.

Я попытался изменить свойство name UIDocumentInteractionController в documentInteractionControllerWillPresentOptionsMenu, а также willBeginSendingToApplication, однако в обоих случаях приложение-получатель не получает правильного имени файла - оно продолжает показывать скрытое имя файла.

Помимо создания копии файла с незашифрованным именем, есть ли способ заставить принимающее приложение использовать желаемое имя файла?


person Lee    schedule 17.07.2014    source источник
comment
В итоге я создал копию файла в функции willBeginSendingToApplication и изменил свойство url UIDocumentInteractionController.   -  person Lee    schedule 22.07.2014
comment
Я пытаюсь сделать то же самое. У меня есть 2 копии файла, одна зашифрована, а другая - оригинальный простой файл. При предварительном просмотре файла я использую простой файл, а во время открытия я хочу отправить зашифрованный файл в целевое приложение, но установка свойства URL не помогает, и он всегда отправляет простую версию. Любая идея?   -  person Shikha Shah    schedule 31.05.2018


Ответы (1)


Вместо копии попробуйте:

NSError *error = nil;
[[NSFileManager defaultManager] linkItemAtPath:obfuscatedFilePath toPath:abcFilePath error:&error];

Это создаст жесткую ссылку на файл. Символические ссылки работать не будут.

person Hayden    schedule 25.09.2014
comment
Это сработало для меня. Я сделал это прямо перед созданием UIDocumentInteractionController (не нужно использовать делегат в моем приложении). - person aaronsti; 31.07.2018