我正在使用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类型。