有2个申请:
我尝试在WhatsApp与我的应用程序(testAPP)之间共享音频文件,我已经实现了APP Group并共享扩展程序。
我成功地在这些应用程序之间进行了集成并收到了一个URL,如下所示:
文件:///private/var/mobile/Containers/Data/Application/xxxxxx/tmp/documents/xxxxxx/2017-04-16-AUDIO-00001077.opus
当我尝试将此文件移动到本地文档应用程序时,问题就出现了,例如
目的地路径: startingPath = /private/var/mobile/Containers/Data/Application/xxxxxx/tmp/documents/xxxxxx/2017-04-16-AUDIO-00001077.opus
目标路径: endingPath = / var / mobile / Containers / Data / Application / 685A0D6F-AB7C-4DCF-ADD9-19AAE6A8DAFD / Documents
do {
try filemgr.moveItem(atPath: startingPath, toPath: endingPath!)
} catch let error as NSError {
NSLog("Unable to create directory \(error.debugDescription)")
}
我收到此错误,我不明白为什么
无法创建目录错误Domain = NSCocoaErrorDomain Code = 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 =( 移动 ),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 :(得分:0)
最后我理解了这个问题。
当应用程序使用共享扩展以便在您的应用程序内部共享文件/图像时,该文件存在于以下位置:
/私有的/ var /移动/容器/数据/应用/
为了获得文件的完全权限,需要将文件复制到app group共享文件夹:
/私有的/ var /移动/容器/共享/ AppGroup /
将文件移动到app group shared文件夹后,您将获得该文件的完整权限