【问题标题】:NSURLSessionDownloadTask downloadTask: didFinishDownloadingToURL file does not exist?NSURLSessionDownloadTask 下载任务:didFinishDownloadingToURL 文件不存在?
【发布时间】:2015-10-31 00:25:07
【问题描述】:

我已经实现了 NSURLSessionDownloadTask 来同时下载多个视频。在正常情况下,一切正常。后台获取也正在工作。但是当我关闭应用程序并重新启动应用程序并执行相同的 downloadTask: didFinishDownloadingToURL 时,我得到的临时文件路径是错误的。该文件在路径中不存在。当我通过查找器检查路径时,我发现文件存在,唯一的区别是提供的路径不包含文件名,并且存在与应存储文件的父文件夹同名的额外文件夹。请在下面找到共享的路径

/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

任何人都可以帮助找到下载文件的路径或处理这种情况吗? 我做了研究以找到解决方案,但很遗憾地说这在任何地方都找不到

【问题讨论】:

  • 我正在尝试一次下载多个视频。如果应用程序关闭并打开并再次执行相同的操作,则下载位置 os 在下载任务委托方法中错误地共享 - (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(NSURL *)位置
  • 能否分享保存文件路径的代码
  • 问题是委托本身共享的临时文件路径错误。共享路径为:/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
  • 我要代码。你保存下载视频的方法didFinishDownloadingToURL。你保存视频吗。你不能重用临时路径
  • 没错。但是看看他们分享的路径。这不包含任何文件名。

标签: ios objective-c ipad nsurlsession nsurlsessiondownloadtask


【解决方案1】:

在调试应用时,从 iOS8 开始,每次启动调试会话(至少在模拟器中)时文件路径都会发生变化。

检查路径中的app-identifier,它有时会在你调试时改变。

从 iOS8 开始,您应该将它用于文件 URL:

NSURL *documentsPath = [[[NSFileManager defaultManager] URLsForDirectory:NSCachesDirectory inDomains:NSUserDomainMask] lastObject];

setDownloadTaskDidFinishDownloadingBlock: 中,我使用它来返回应该保存文件的文件URL:

return [documentsPath URLByAppendingPathComponent:fileName];

打开文件

NSURL *fileURL = [documentsPath URLByAppendingPathComponent:fileName];

删除文件

NSURL *fileURL = [documentsPath URLByAppendingPathComponent:fileName];
NSError *error = nil;
[[NSFileManager defaultManager] removeItemAtURL:fileURL error:&error];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 2019-06-16
    相关资源
    最近更新 更多