我正在使用alamofire下载PDF文件。它基本上可以运行,但是当多次下载时,iOS似乎不会覆盖文件。我收到此错误:



如何告诉alamofire覆盖文件?我的代码:

var fileName = ""
var filePath = ""

Alamofire.manager.download(Router.listToPdf(), destination: { (temporaryURL, response) -> (NSURL) in

    if let directoryURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] as? NSURL {
        fileName = response.suggestedFilename!
        finalPath = directoryURL.URLByAppendingPathComponent(fileName!)
        return finalPath!
    }

    return temporaryURL

    }).response { (_, _, data, err) -> Void in

}

最佳答案

return设置finalPath之前,请使用NSFileManager检查并删除该路径下的任何现有文件。

if NSFileManager.defaultManager().fileExistsAtPath(finalPath) {
    NSFileManager.defaultManager().removeItemAtPath(finalPath, error: nil)
}

在Swift 3中就是这样
if FileManager.default.fileExists(atPath: finalPath.path) {

do{
    try FileManager.default.removeItem(atPath: finalPath.path)
  }catch{
     print("Handle Exception")
  }
}

其中finalPath是URL类型。

10-06 00:33