的iOS - 应用程序之间移动项目,通过共享扩展

的iOS - 应用程序之间移动项目,通过共享扩展

问题描述:

有2个应用程序:的iOS - 应用程序之间移动项目,通过共享扩展

  1. WhatsApp的应用
  2. 我的应用程序(testAPP)

我尝试共享的WhatsApp之间的音频文件我的应用程序(testAPP),我已经实现了APP Group和共享扩展。

我成功了这些应用之间的集成,并收到一个网址,例如:

文件:///私人的/ var /移动/集装箱/数据/应用/ XXXXXX/tmp目录/文件/ XXXXXX/2017- 04-16-AUDIO-00001077.opus

的问题开始当我尝试移动这个文件到我的本地文件的应用程序,例如

目标路径: startingPath = /私营/无功/移动/集装箱/ Data/Application/xxxxxx/tmp/documents/xxxxxx/2017-04-16-AUDIO-00001077.opus

目标路径: endingPath =在/ var /移动/集装箱/数据/应用/ 685A0D6F-AB7C-4DCF-ADD9-19AAE6A8DAFD /文档

do { 
     try filemgr.moveItem(atPath: startingPath, toPath: endingPath!) 
    } catch let error as NSError { 
     NSLog("Unable to create directory \(error.debugDescription)") 
    } 

我得到这个错误,我不明白为什么

无法创建目录错误域= NSCocoaErrorDomain代码= 516“”2017-04-16-AUDIO-00001077.opus“无法移动到”xxxx“,因为具有相同名称的项目已存在。” UserInfo = {NSSourceFilePathErrorKey =/private/var/mobile/Containers/Data/Application/xxxxx/tmp/documents/xxxxxxx/2017-04-16-AUDIO-00001077.opus,NSUserStringVariant =( Move ),NSDestinationFilePath =/var/mobile/Containers/Data/Application/6xxxx/Documents,NSFilePath =/private/var/mobile/Containers/Data/Application/xxxxx/tmp/documents/xxxxxx2/2017-04-16-AUDIO-00001077.opus,NSUnderlyingError = 0x17005f6b0 {错误域= NSPOSIXErrorDomain代码= 17“文件存在”}}

+0

那么,从错误似乎该文件已经存在。这是否也发生在干净的安装上,也就是第一次共享文件时,还是仅在随后的尝试中发生? – Losiowaty

+0

Losiowaty,文件不存在于目标路径,我在第一次安装时检查它。 源文件的前缀是私人/ var,也许我没有权限到这个位置,我不能从那里移动文件? – Android0077

最后我明白了这个问题。

当应用程序使用份额的扩展,以共享文件/图片...里面你的应用程序,该文件在此位置存在:

/私营/无功/移动/集装箱/数据/应用/

为了获得完整的许可文件,需要复制该文件到应用程序组共享文件夹:

/私营/无功/移动/集装箱/共享/ AppGroup/

您将文件移动到应用程序后,组共享文件夹,你将得到一个完整的p删除文件

+0

我做了同样的事情,你提到,但我得到错误。 设置安全信息:不允许操作 无法创建目录/ private/var/mobile/Containers/Shared/AppGroup/71A96319-8575-4AEA-A643-C9A840BCB887:文件存在 – Dishant