URLSession - 下载远程目录

Posted

技术标签:

【中文标题】URLSession - 下载远程目录【英文标题】:URLSession - Download remote directory 【发布时间】:2016-12-27 01:38:10 【问题描述】:

我目前正在使用基于此教程http://sweettutos.com/2015/11/06/networking-in-swift-how-to-download-a-file-with-nsurlsession/ 的代码来使用 URLSession.downloadTask 下载远程文件。这出乎意料地简单。但是,我现在想下载远程目录的全部内容。 我可以使用 URLSessionDownloadTask 还是仅用于单个文件?如果没有,那么如何获取远程目录中包含的文件列表,以便我可以分别对每个文件使用 downloadTask?

【问题讨论】:

【参考方案1】:

首先你想错了。

remote 服务器,只有file 可以是downloaded(不是文件夹)和saveapp 内。您必须下载的文件extension 应该是来自服务器端的configure。然后是client,您可以使用Sweettutos教程。

你要做的第一件事是:

与服务器端开发人员交谈,他必须将远程目录压缩为(.zip 或 .rar),您只能下载它。

然后,在您的代码中下载服务器端提供给您的 url 并将其保存在文档目录中,提取并读取您想要的文件。

在 URLSession 文档中:

下载任务以文件的形式检索数据,并支持 在应用未运行时进行后台下载和上传。

因此,没有办法您可以下载远程目录(未知文件扩展名),除非您从服务器端使该远程文件可用于某些文件扩展名。

【讨论】:

谢谢昂。只是没有想到要在服务器端压缩目录。

以上是关于URLSession - 下载远程目录的主要内容,如果未能解决你的问题,请参考以下文章

URLSession 下载任务委托仅在所有任务完成后调用

从图像 url 下载图像方面,URLSession 与 GCD 有啥区别?

调用AfterdidCompleteWithError时如何使用URLSession downloadTaskWithResumeData重新开始下载..?

`urlSession(_:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:)` 在下载内容时只调用一次使用

如何使用 AFNetworking 2.x 管理许多 (>500) 后台 URLSession 下载?

Swift 重复 URLSession 造成大量内存泄漏