我想知道,如果对以下问题有不同且更快的解决方案。我正在下载NSURLSession
的文件。默认情况下(我猜?)下载的文件存储在tmp文件夹中。然后我需要将此文件复制到缓存文件夹。目前我正在使用此代码进行我的方法(在didFinishDownloading
函数中)
if let fileData = NSData(contentsOfURL: sourceUrl) {
fileData.writeToURL(destinationURL, atomically: true) // true
print(destinationURL.path!)
}
但是,由于我的文件很大,这需要一段时间。
将此文件复制到缓存文件夹有不同的选项吗?
或者是否可以使用NSURLSession
?
答案 0 :(得分:2)
而不是复制文件,你只需移动它就可以了 理想的位置:
do {
try NSFileManager.defaultManager().moveItemAtURL(sourceURL, toURL: destinationURL)
} catch let err as NSError {
print(err.localizedDescription)
}
这会快得多,因为只有目录条目 文件系统已修改,但实际上没有复制数据。
Swift 3更新:
do {
try FileManager.default.moveItem(at: sourceURL, to: destinationURL)
} catch {
print(error.localizedDescription)
}