我已经实现了NSURLSessionDownloadTask,可以同时下载多个视频。在正常情况下,每件事都很好。后台提取也有效。但是,当我关闭应用程序并重新启动应用程序并执行相同的downloadTask:didFinishDownloadingToURL我得到的临时文件路径是错误的。该文件不存在于路径中。当我通过finder检查路径时发现文件存在,唯一的区别是提供的路径不包含文件名,并且还存在与应存储文件的父文件夹名称相同的额外文件夹。请找到下面分享的路径
/Users/sfm/Library/Developer/CoreSimulator/Devices/EB96B330-4928-422F-8655-DC0E9781014A/data/Containers/Data/Application/54691CE2-D599-41CA-813B-2A8FF7B868F8/Library/Caches/com.apple.nsurlsessiond/Downloads/com.application.tre/com.application.tre
任何人都可以帮助找到下载文件的路径或处理此类场景吗? 我做了一个寻找解决方案的研究,但很遗憾地说,无法在任何地方找到它
答案 0 :(得分:2)
调试应用程序时,自iOS8起,每次启动调试会话时文件路径都会更改(至少在模拟器中)。
检查路径中的app-identifier,有时会在调试时更改。
从iOS8开始,你应该将它用于fileURLs:
var_dump()
在NSURL *documentsPath = [[[NSFileManager defaultManager] URLsForDirectory:NSCachesDirectory inDomains:NSUserDomainMask] lastObject];
我用它来返回文件URL,保存文件:
setDownloadTaskDidFinishDownloadingBlock:
要打开文件:
return [documentsPath URLByAppendingPathComponent:fileName];
要删除文件:
NSURL *fileURL = [documentsPath URLByAppendingPathComponent:fileName];