You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中下载Dropbox/Google Drive Zip文件后生成.cpgz文件的修复咨询

解决Dropbox/Google Drive Zip下载后循环解压成.cpgz的问题

你遇到的这个循环解压问题其实很好解决——你当前下载的根本不是真正的Zip文件!Dropbox默认的分享链接(末尾带dl=0)返回的是网页预览页面,不是原始压缩包,所以解压时才会变成.cpgz文件,陷入死循环。

我直接给你修改好的Swift代码,同时解释关键改动点:

if let zipUrl = URL(string: "https://www.dropbox.com/s/n785nwy2tbaxgz8/app_dfu_package_1.zip?dl=1") { // 关键改动1:把dl=0改成dl=1
    // 获取Documents目录URL
    let documentsUrl = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
    // 目标文件保存路径
    let destination = documentsUrl.appendingPathComponent(zipUrl.lastPathComponent)
    
    // 检查文件是否已存在
    if FileManager().fileExists(atPath: destination.path) {
        print("文件已存在")
    } else {
        var urlRequest = URLRequest(url: zipUrl)
        urlRequest.httpMethod = "GET"
        // 关键改动2:移除不必要的Content-Type请求头,我们是下载文件不是提交JSON
        
        URLSession.shared.downloadTask(with: urlRequest, completionHandler: { (location, response, error) in
            guard let httpURLResponse = response as? HTTPURLResponse, 
                  httpURLResponse.statusCode == 200, 
                  let location = location, 
                  error == nil else {
                print("下载失败:\(error?.localizedDescription ?? "未知错误")")
                return
            }
            
            do {
                try FileManager.default.moveItem(at: location, to: destination)
                print("文件已保存到:\(destination.path)")
            } catch {
                print("保存文件失败:\(error.localizedDescription)")
            }
        }).resume()
    }
}

关键改动说明:

  • 修正Dropbox链接参数:将链接末尾的dl=0改为dl=1,这个参数告诉Dropbox直接返回原始压缩文件,而不是网页预览页面
  • 移除错误的请求头:原代码中设置的Content-Type: application/json完全没必要,我们是下载文件,不是向服务器提交JSON数据,这个头会干扰服务器的正确响应
  • 额外提示(针对Google Drive):如果是Google Drive的分享链接,需要把格式从https://drive.google.com/open?id=XXX改成https://drive.google.com/uc?export=download&id=XXX,才能直接下载原始文件

这样修改后,你下载到的就是真正的Zip包,解压时就不会再出现.cpgz循环的问题了。

内容的提问来源于stack exchange,提问作者Jitendra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:48:30